diff --git a/arch/wasm32/pthread_arch.h b/arch/wasm32/pthread_arch.h index 212f4e12..1752ee8e 100644 --- a/arch/wasm32/pthread_arch.h +++ b/arch/wasm32/pthread_arch.h @@ -7,3 +7,8 @@ static inline struct pthread *__pthread_self(void) { #define CANCEL_REG_IP 16 #define MC_PC gregs[REG_EIP] + +#define __wait __wait +static inline void __wait(volatile int *addr, volatile int *waiters, int cnt, int priv) {} +static inline void __wake(volatile void *addr, int cnt, int priv) {} +static inline void __futexwait(volatile void *addr, int val, int priv) {} diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h index c2deffb9..8be15e0b 100644 --- a/src/internal/pthread_impl.h +++ b/src/internal/pthread_impl.h @@ -150,6 +150,8 @@ void __vm_unlock(void); int __timedwait(volatile int *, int, clockid_t, const struct timespec *, int); int __timedwait_cp(volatile int *, int, clockid_t, const struct timespec *, int); + +#ifndef __wait void __wait(volatile int *, volatile int *, int, int); static inline void __wake(volatile void *addr, int cnt, int priv) { @@ -164,6 +166,7 @@ static inline void __futexwait(volatile void *addr, int val, int priv) __syscall(SYS_futex, addr, FUTEX_WAIT|priv, val) != -ENOSYS || __syscall(SYS_futex, addr, FUTEX_WAIT, val); } +#endif void __acquire_ptc(void); void __release_ptc(void);