diff options
| author | 2015-01-09 12:20:45 +0100 | |
|---|---|---|
| committer | 2015-01-09 12:20:45 +0100 | |
| commit | fb72a4033c3f920aadbb3ea1b5ead157c92ae3bc (patch) | |
| tree | 71111526e7091da72e256b8058682b23e2054bfc /src/osd/modules/sync | |
| parent | 03fea60f02a29098b77667be4dd2ea67c74afcab (diff) | |
src/osd/modules/sync: added some errorhandling (nw)
Diffstat (limited to 'src/osd/modules/sync')
| -rw-r--r-- | src/osd/modules/sync/sync_ntc.c | 8 | ||||
| -rw-r--r-- | src/osd/modules/sync/sync_os2.c | 8 | ||||
| -rw-r--r-- | src/osd/modules/sync/sync_sdl.c | 8 | ||||
| -rw-r--r-- | src/osd/modules/sync/sync_tc.c | 8 | ||||
| -rw-r--r-- | src/osd/modules/sync/sync_windows.c | 9 |
5 files changed, 41 insertions, 0 deletions
diff --git a/src/osd/modules/sync/sync_ntc.c b/src/osd/modules/sync/sync_ntc.c index 091b695eab7..ecd5cd51eaf 100644 --- a/src/osd/modules/sync/sync_ntc.c +++ b/src/osd/modules/sync/sync_ntc.c @@ -91,6 +91,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; memset(lock, 0, sizeof(*lock)); lock->slot[0].haslock = TRUE; @@ -208,6 +210,8 @@ osd_lock *osd_lock_alloc(void) osd_lock *lock; lock = (osd_lock *)calloc(1, sizeof(osd_lock)); + if (lock == NULL) + return NULL; lock->holder = 0; lock->count = 0; @@ -347,6 +351,8 @@ osd_event *osd_event_alloc(int manualreset, int initialstate) pthread_mutexattr_t mtxattr; ev = (osd_event *)calloc(1, sizeof(osd_event)); + if (ev == NULL) + return NULL; pthread_mutexattr_init(&mtxattr); pthread_mutex_init(&ev->mutex, &mtxattr); @@ -472,6 +478,8 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) pthread_attr_t attr; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; pthread_attr_init(&attr); #ifndef SDLMAME_HAIKU pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); diff --git a/src/osd/modules/sync/sync_os2.c b/src/osd/modules/sync/sync_os2.c index 1aba8082588..e6df73d083d 100644 --- a/src/osd/modules/sync/sync_os2.c +++ b/src/osd/modules/sync/sync_os2.c @@ -80,6 +80,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; memset(lock, 0, sizeof(*lock)); lock->slot[0].haslock = TRUE; @@ -197,6 +199,8 @@ osd_lock *osd_lock_alloc(void) osd_lock *lock; lock = (osd_lock *)calloc(1, sizeof(osd_lock)); + if (lock == NULL) + return NULL; lock->holder = 0; lock->count = 0; @@ -335,6 +339,8 @@ osd_event *osd_event_alloc(int manualreset, int initialstate) osd_event *ev; ev = (osd_event *)calloc(1, sizeof(osd_event)); + if (ev == NULL) + return NULL; DosCreateMutexSem(NULL, &ev->hmtx, 0, FALSE); DosCreateEventSem(NULL, &ev->hev, 0, initialstate); @@ -422,6 +428,8 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) osd_thread *thread; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; thread->callback = callback; thread->param = cbparam; thread->thread = _beginthread(worker_thread_entry, NULL, 65535, thread); diff --git a/src/osd/modules/sync/sync_sdl.c b/src/osd/modules/sync/sync_sdl.c index 120391741a4..edfc3d105d4 100644 --- a/src/osd/modules/sync/sync_sdl.c +++ b/src/osd/modules/sync/sync_sdl.c @@ -67,6 +67,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; lock->mutex = SDL_CreateMutex(); return lock; @@ -100,6 +102,8 @@ osd_lock *osd_lock_alloc(void) hidden_mutex_t *mutex; mutex = (hidden_mutex_t *)calloc(1, sizeof(hidden_mutex_t)); + if (mutex == NULL) + return NULL; mutex->id = SDL_CreateMutex(); @@ -191,6 +195,8 @@ osd_event *osd_event_alloc(int manualreset, int initialstate) osd_event *ev; ev = (osd_event *)calloc(1, sizeof(osd_event)); + if (ev == NULL) + return NULL; ev->mutex = SDL_CreateMutex(); ev->cond = SDL_CreateCond(); @@ -315,6 +321,8 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) osd_thread *thread; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; thread->callback = callback; thread->param = cbparam; #ifdef SDLMAME_SDL2 diff --git a/src/osd/modules/sync/sync_tc.c b/src/osd/modules/sync/sync_tc.c index f89d39050d0..6c05599baef 100644 --- a/src/osd/modules/sync/sync_tc.c +++ b/src/osd/modules/sync/sync_tc.c @@ -73,6 +73,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; lock->lock = osd_lock_alloc(); return lock; @@ -108,6 +110,8 @@ osd_lock *osd_lock_alloc(void) pthread_mutexattr_t mtxattr; mutex = (hidden_mutex_t *)calloc(1, sizeof(hidden_mutex_t)); + if (mutex == NULL) + return NULL; pthread_mutexattr_init(&mtxattr); pthread_mutexattr_settype(&mtxattr, PTHREAD_MUTEX_RECURSIVE); @@ -182,6 +186,8 @@ osd_event *osd_event_alloc(int manualreset, int initialstate) pthread_mutexattr_t mtxattr; ev = (osd_event *)calloc(1, sizeof(osd_event)); + if (ev == NULL) + return NULL; pthread_mutexattr_init(&mtxattr); pthread_mutex_init(&ev->mutex, &mtxattr); @@ -307,6 +313,8 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) pthread_attr_t attr; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; pthread_attr_init(&attr); pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); if ( pthread_create(&thread->thread, &attr, callback, cbparam) != 0 ) diff --git a/src/osd/modules/sync/sync_windows.c b/src/osd/modules/sync/sync_windows.c index bf5c5c33504..b7d266a52ad 100644 --- a/src/osd/modules/sync/sync_windows.c +++ b/src/osd/modules/sync/sync_windows.c @@ -271,9 +271,16 @@ osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam) uintptr_t handle; thread = (osd_thread *)calloc(1, sizeof(osd_thread)); + if (thread == NULL) + return NULL; thread->callback = callback; thread->param = cbparam; handle = _beginthreadex(NULL, 0, worker_thread_entry, thread, 0, NULL); + if (handle == 0) + { + free(thread); + return NULL; + } thread->handle = (HANDLE) handle; return thread; } @@ -320,6 +327,8 @@ osd_scalable_lock *osd_scalable_lock_alloc(void) osd_scalable_lock *lock; lock = (osd_scalable_lock *)calloc(1, sizeof(*lock)); + if (lock == NULL) + return NULL; memset(lock, 0, sizeof(*lock)); #if USE_SCALABLE_LOCKS |
