summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/sync
diff options
context:
space:
mode:
author Oliver Stöneberg <oliverst@online.de>2015-01-09 12:20:45 +0100
committer Oliver Stöneberg <oliverst@online.de>2015-01-09 12:20:45 +0100
commitfb72a4033c3f920aadbb3ea1b5ead157c92ae3bc (patch)
tree71111526e7091da72e256b8058682b23e2054bfc /src/osd/modules/sync
parent03fea60f02a29098b77667be4dd2ea67c74afcab (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.c8
-rw-r--r--src/osd/modules/sync/sync_os2.c8
-rw-r--r--src/osd/modules/sync/sync_sdl.c8
-rw-r--r--src/osd/modules/sync/sync_tc.c8
-rw-r--r--src/osd/modules/sync/sync_windows.c9
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