summaryrefslogtreecommitdiff
path: root/lang/qscheme/files/patch-thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qscheme/files/patch-thread.c')
-rw-r--r--lang/qscheme/files/patch-thread.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/lang/qscheme/files/patch-thread.c b/lang/qscheme/files/patch-thread.c
new file mode 100644
index 000000000000..a398a254ee38
--- /dev/null
+++ b/lang/qscheme/files/patch-thread.c
@@ -0,0 +1,42 @@
+--- thread.c.orig 2009-03-03 17:22:45.000000000 +0200
++++ thread.c 2009-03-03 17:26:27.000000000 +0200
+@@ -123,7 +123,8 @@
+ SOBJ scm_mutex_new()
+ {
+ SOBJ new = scm_newcell(SOBJ_T_MUTEX);
+- SCM_MUTEX(new) = scm_must_alloc(sizeof(pthread_mutex_t));
++ /*SCM_MUTEX(new) = scm_must_alloc(sizeof(pthread_mutex_t));*/
++ SCM_MUTEX_SET(new, scm_must_alloc(sizeof(pthread_mutex_t)));
+ pthread_mutex_init(SCM_MUTEX(new), NULL);
+ return(new);
+ }
+@@ -137,7 +138,8 @@
+ } else {
+ scm_free(SCM_MUTEX(x));
+ }
+- SCM_MUTEX(x) = NULL;
++ /*SCM_MUTEX(x) = NULL;*/
++ SCM_MUTEX_SET(x, NULL);
+ }
+ }
+
+@@ -201,7 +203,8 @@
+ {
+ int n = 0;
+ SOBJ new = scm_newcell(SOBJ_T_SEMAPHORE);
+- SCM_SEMAPHORE(new) = scm_must_alloc(sizeof(sem_t));
++ /*SCM_SEMAPHORE_SET(new) = scm_must_alloc(sizeof(sem_t));*/
++ SCM_SEMAPHORE_SET(new, scm_must_alloc(sizeof(sem_t)));
+ if (nargs >= 1 && SCM_INUMP(arg[0])) {
+ n = SCM_INUM(n);
+ }
+@@ -218,7 +221,8 @@
+ } else {
+ scm_free(SCM_SEMAPHORE(x));
+ }
+- SCM_SEMAPHORE(x) = NULL;
++ /*SCM_SEMAPHORE(x) = NULL;*/
++ SCM_SEMAPHORE_SET(x, NULL);
+ }
+ }
+