diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-11 11:05:36 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-11 11:05:36 +0200 |
| commit | 3b9feeed120af45a2dc346592b328eb0b2e14911 (patch) | |
| tree | 805803a23c6e2e91fc002b8b8f1b2d9f73a1e298 /src/include | |
| parent | 6d3ca2df80b6df2e9aabb73210f9c09fd0df97a1 (diff) | |
| download | box64-3b9feeed120af45a2dc346592b328eb0b2e14911.tar.gz box64-3b9feeed120af45a2dc346592b328eb0b2e14911.zip | |
Improvement in internal mutex handling on signal, and [DYNAREC] multitasking changes to the JmpTable
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/box64context.h | 5 | ||||
| -rw-r--r-- | src/include/custommem.h | 4 | ||||
| -rwxr-xr-x | src/include/threads.h | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/include/box64context.h b/src/include/box64context.h index ffcacc36..4d48c816 100755 --- a/src/include/box64context.h +++ b/src/include/box64context.h @@ -200,4 +200,9 @@ int AddTLSPartition(box64context_t* context, int tlssize); void thread_set_emu(x64emu_t* emu); x64emu_t* thread_get_emu(); +// unlock mutex that are locked by current thread (for signal handling). Return a mask of unlock mutex +int unlockMutex(); +// relock the muxtex that were unlocked +void relockMutex(int locks); + #endif //__BOX64CONTEXT_H_ diff --git a/src/include/custommem.h b/src/include/custommem.h index 15f38596..1b86d251 100644 --- a/src/include/custommem.h +++ b/src/include/custommem.h @@ -52,6 +52,10 @@ void unlockDB(); void* find32bitBlock(size_t size); void* findBlockNearHint(void* hint, size_t size); +// unlock mutex that are locked by current thread (for signal handling). Return a mask of unlock mutex +int unlockCustommemMutex(); +// relock the muxtex that were unlocked +void relockCustommemMutex(int locks); void init_custommem_helper(box64context_t* ctx); void fini_custommem_helper(box64context_t* ctx); diff --git a/src/include/threads.h b/src/include/threads.h index fa9d64ab..19d3c9bc 100755 --- a/src/include/threads.h +++ b/src/include/threads.h @@ -20,4 +20,7 @@ void fini_pthread_helper(box64context_t* context); // prepare an "emuthread structure" in pet and return address of function pointer for a "thread creation routine" void* my_prepare_thread(x64emu_t *emu, void* f, void* arg, int ssize, void** pet); +//check if a mutex is locked by current thread (works only for PTHREAD_MUTEX_ERRORCHECK typed mutex) +int checkMutex(void* m); + #endif //_THREADS_H_ \ No newline at end of file |