Skip to content

Commit e2fce83

Browse files
committed
tsrm: implement win32 cond API
1 parent e8b2b5f commit e2fce83

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

TSRM/TSRM.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ TSRM_API COND_T tsrm_cond_alloc(void)
6262
{
6363
COND_T condp;
6464
#ifdef TSRM_WIN32
65-
#error "TODO"
65+
condp = (PCONDITION_VARIABLE)malloc(sizeof(CONDITION_VARIABLE));
66+
InitializeConditionVariable(condp);
6667
#else
6768
condp = (pthread_cond_t *)malloc(sizeof(pthread_cond_t));
6869
pthread_cond_init(condp, NULL);
@@ -73,7 +74,7 @@ TSRM_API COND_T tsrm_cond_alloc(void)
7374
TSRM_API int tsrm_cond_wait(COND_T condp, MUTEX_T mutexp)
7475
{
7576
#ifdef TSRM_WIN32
76-
#error "TODO"
77+
return SleepConditionVariableCS(condp, mutexp, INFINITE) ? 0 : -1;
7778
#else
7879
return pthread_cond_wait(condp, mutexp);
7980
#endif
@@ -82,7 +83,8 @@ TSRM_API int tsrm_cond_wait(COND_T condp, MUTEX_T mutexp)
8283
TSRM_API int tsrm_cond_broadcast(COND_T condp)
8384
{
8485
#ifdef TSRM_WIN32
85-
#error "TODO"
86+
WakeAllConditionVariable(condp);
87+
return 0;
8688
#else
8789
return pthread_cond_broadcast(condp);
8890
#endif
@@ -126,7 +128,7 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
126128
TSRM_API void tsrm_cond_free(COND_T condp)
127129
{
128130
#ifdef TSRM_WIN32
129-
#error "TODO"
131+
free(condp);
130132
#else
131133
if(condp){
132134
pthread_cond_destroy(condp);

ext/ffi/ffi.c

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
#include "main/SAPI.h"
3131
#include "TSRM.h"
3232
#include "zend_fibers.h"
33-
#include "zend_stack.h"
3433

3534
#include <sys/types.h>
3635
#include <sys/stat.h>

ext/ffi/php_ffi.h

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#define PHP_FFI_H
1919

2020
#include <ffi.h>
21-
#include <pthread.h>
2221
#include "zend_compile.h"
2322
#include "zend_API.h"
2423
#include "TSRM.h"

0 commit comments

Comments
 (0)