summaryrefslogtreecommitdiff
path: root/sysutils/gnome-vfs/patches/patch-ae
blob: 7559aca856978cb06da370625e38cc40c1c46d4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
$NetBSD: patch-ae,v 1.1 2001/04/06 22:03:09 rh Exp $

--- libgnomevfs-pthread/gnome-vfs-job.c.orig	Thu Apr  5 17:46:13 2001
+++ libgnomevfs-pthread/gnome-vfs-job.c
@@ -166,13 +166,21 @@
 	 * access lock at all in the case of synch operations like xfer.
 	 * Unlocking here is perfectly OK, even though it's a hack.
 	 */
+#ifdef HAVE_SEMAPHORE_H
 	sem_post (&job->access_lock);
+#else
+	pthread_mutex_unlock (&job->access_lock);
+#endif
 
 	JOB_DEBUG (("Wait notify condition %u", GPOINTER_TO_UINT (notify_result->job_handle)));
 	/* Wait for the notify condition.  */
 	g_cond_wait (job->notify_ack_condition, job->notify_ack_lock);
 
+#ifdef HAVE_SEMAPHORE_H
 	sem_wait (&job->access_lock);
+#else
+	pthread_mutex_lock (&job->access_lock);
+#endif
 
 	JOB_DEBUG (("Unlock notify ack lock %u", GPOINTER_TO_UINT (notify_result->job_handle)));
 	/* Acknowledgment got: unlock the mutex.  */
@@ -564,7 +572,11 @@
 	GnomeVFSOp *op;
 
 	JOB_DEBUG (("locking access lock %u, op %d", GPOINTER_TO_UINT (job->job_handle), type));
+#ifdef HAVE_SEMAPHORE_H
 	sem_wait (&job->access_lock);
+#else
+	pthread_mutex_lock (&job->access_lock);
+#endif
 
 	op = g_new (GnomeVFSOp, 1);
 	op->type = type;
@@ -588,7 +600,11 @@
 	
 	new_job = g_new0 (GnomeVFSJob, 1);
 	
+#ifdef HAVE_SEMAPHORE_H
 	sem_init (&new_job->access_lock, 0, 1);
+#else
+	pthread_mutex_init (&new_job->access_lock, NULL);
+#endif
 	new_job->notify_ack_condition = g_cond_new ();
 	new_job->notify_ack_lock = g_mutex_new ();
 
@@ -610,7 +626,11 @@
 
 	gnome_vfs_op_destroy (job->op);
 
+#ifdef HAVE_SEMAPHORE_H
 	sem_destroy (&job->access_lock);
+#else
+	pthread_mutex_destroy (&job->access_lock);
+#endif
 
 	g_cond_free (job->notify_ack_condition);
 	g_mutex_free (job->notify_ack_lock);
@@ -705,7 +725,11 @@
 	JOB_DEBUG (("new job %u, op %d, unlocking access lock",
 		GPOINTER_TO_UINT (job->job_handle), job->op->type));
 
+#ifdef HAVE_SEMAPHORE_H
 	sem_post (&job->access_lock);
+#else
+	pthread_mutex_unlock (&job->access_lock);
+#endif
 }
 
 #define DEFAULT_BUFFER_SIZE 16384