Mercurial > sdl-ios-xcode
comparison src/thread/riscos/SDL_syssem.c @ 1668:4da1ee79c9af SDL-1.3
more tweaking indent options
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 29 May 2006 04:04:35 +0000 |
parents | 782fd950bd46 |
children |
comparison
equal
deleted
inserted
replaced
1667:1fddae038bc8 | 1668:4da1ee79c9af |
---|---|
29 #include "SDL_systhread_c.h" | 29 #include "SDL_systhread_c.h" |
30 | 30 |
31 #if !SDL_THREADS_DISABLED | 31 #if !SDL_THREADS_DISABLED |
32 | 32 |
33 SDL_sem * | 33 SDL_sem * |
34 SDL_CreateSemaphore (Uint32 initial_value) | 34 SDL_CreateSemaphore(Uint32 initial_value) |
35 { | 35 { |
36 SDL_SetError ("SDL not configured with thread support"); | 36 SDL_SetError("SDL not configured with thread support"); |
37 return (SDL_sem *) 0; | 37 return (SDL_sem *) 0; |
38 } | 38 } |
39 | 39 |
40 void | 40 void |
41 SDL_DestroySemaphore (SDL_sem * sem) | 41 SDL_DestroySemaphore(SDL_sem * sem) |
42 { | 42 { |
43 return; | 43 return; |
44 } | 44 } |
45 | 45 |
46 int | 46 int |
47 SDL_SemTryWait (SDL_sem * sem) | 47 SDL_SemTryWait(SDL_sem * sem) |
48 { | 48 { |
49 SDL_SetError ("SDL not configured with thread support"); | 49 SDL_SetError("SDL not configured with thread support"); |
50 return -1; | 50 return -1; |
51 } | 51 } |
52 | 52 |
53 int | 53 int |
54 SDL_SemWaitTimeout (SDL_sem * sem, Uint32 timeout) | 54 SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout) |
55 { | 55 { |
56 SDL_SetError ("SDL not configured with thread support"); | 56 SDL_SetError("SDL not configured with thread support"); |
57 return -1; | 57 return -1; |
58 } | 58 } |
59 | 59 |
60 int | 60 int |
61 SDL_SemWait (SDL_sem * sem) | 61 SDL_SemWait(SDL_sem * sem) |
62 { | 62 { |
63 SDL_SetError ("SDL not configured with thread support"); | 63 SDL_SetError("SDL not configured with thread support"); |
64 return -1; | 64 return -1; |
65 } | 65 } |
66 | 66 |
67 Uint32 | 67 Uint32 |
68 SDL_SemValue (SDL_sem * sem) | 68 SDL_SemValue(SDL_sem * sem) |
69 { | 69 { |
70 return 0; | 70 return 0; |
71 } | 71 } |
72 | 72 |
73 int | 73 int |
74 SDL_SemPost (SDL_sem * sem) | 74 SDL_SemPost(SDL_sem * sem) |
75 { | 75 { |
76 SDL_SetError ("SDL not configured with thread support"); | 76 SDL_SetError("SDL not configured with thread support"); |
77 return -1; | 77 return -1; |
78 } | 78 } |
79 | 79 |
80 #else | 80 #else |
81 | 81 |
90 sem_t sem_data; | 90 sem_t sem_data; |
91 }; | 91 }; |
92 | 92 |
93 /* Create a semaphore, initialized with value */ | 93 /* Create a semaphore, initialized with value */ |
94 SDL_sem * | 94 SDL_sem * |
95 SDL_CreateSemaphore (Uint32 initial_value) | 95 SDL_CreateSemaphore(Uint32 initial_value) |
96 { | 96 { |
97 SDL_sem *sem = (SDL_sem *) SDL_malloc (sizeof (SDL_sem)); | 97 SDL_sem *sem = (SDL_sem *) SDL_malloc(sizeof(SDL_sem)); |
98 if (sem) { | 98 if (sem) { |
99 if (sem_init (&sem->sem_data, 0, initial_value) < 0) { | 99 if (sem_init(&sem->sem_data, 0, initial_value) < 0) { |
100 SDL_SetError ("sem_init() failed"); | 100 SDL_SetError("sem_init() failed"); |
101 SDL_free (sem); | 101 SDL_free(sem); |
102 sem = NULL; | 102 sem = NULL; |
103 } else { | 103 } else { |
104 sem->sem = &sem->sem_data; | 104 sem->sem = &sem->sem_data; |
105 } | 105 } |
106 } else { | 106 } else { |
107 SDL_OutOfMemory (); | 107 SDL_OutOfMemory(); |
108 } | 108 } |
109 return sem; | 109 return sem; |
110 } | 110 } |
111 | 111 |
112 void | 112 void |
113 SDL_DestroySemaphore (SDL_sem * sem) | 113 SDL_DestroySemaphore(SDL_sem * sem) |
114 { | 114 { |
115 if (sem) { | 115 if (sem) { |
116 sem_destroy (sem->sem); | 116 sem_destroy(sem->sem); |
117 SDL_free (sem); | 117 SDL_free(sem); |
118 } | 118 } |
119 } | 119 } |
120 | 120 |
121 int | 121 int |
122 SDL_SemTryWait (SDL_sem * sem) | 122 SDL_SemTryWait(SDL_sem * sem) |
123 { | 123 { |
124 int retval; | 124 int retval; |
125 | 125 |
126 if (!sem) { | 126 if (!sem) { |
127 SDL_SetError ("Passed a NULL semaphore"); | 127 SDL_SetError("Passed a NULL semaphore"); |
128 return -1; | 128 return -1; |
129 } | 129 } |
130 retval = SDL_MUTEX_TIMEDOUT; | 130 retval = SDL_MUTEX_TIMEDOUT; |
131 if (sem_trywait (sem->sem) == 0) { | 131 if (sem_trywait(sem->sem) == 0) { |
132 retval = 0; | 132 retval = 0; |
133 } | 133 } |
134 return retval; | 134 return retval; |
135 } | 135 } |
136 | 136 |
137 int | 137 int |
138 SDL_SemWait (SDL_sem * sem) | 138 SDL_SemWait(SDL_sem * sem) |
139 { | 139 { |
140 int retval; | 140 int retval; |
141 | 141 |
142 if (!sem) { | 142 if (!sem) { |
143 SDL_SetError ("Passed a NULL semaphore"); | 143 SDL_SetError("Passed a NULL semaphore"); |
144 return -1; | 144 return -1; |
145 } | 145 } |
146 | 146 |
147 retval = sem_wait (sem->sem); | 147 retval = sem_wait(sem->sem); |
148 if (retval < 0) { | 148 if (retval < 0) { |
149 SDL_SetError ("sem_wait() failed"); | 149 SDL_SetError("sem_wait() failed"); |
150 } | 150 } |
151 return retval; | 151 return retval; |
152 } | 152 } |
153 | 153 |
154 int | 154 int |
155 SDL_SemWaitTimeout (SDL_sem * sem, Uint32 timeout) | 155 SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout) |
156 { | 156 { |
157 int retval; | 157 int retval; |
158 | 158 |
159 if (!sem) { | 159 if (!sem) { |
160 SDL_SetError ("Passed a NULL semaphore"); | 160 SDL_SetError("Passed a NULL semaphore"); |
161 return -1; | 161 return -1; |
162 } | 162 } |
163 | 163 |
164 /* Try the easy cases first */ | 164 /* Try the easy cases first */ |
165 if (timeout == 0) { | 165 if (timeout == 0) { |
166 return SDL_SemTryWait (sem); | 166 return SDL_SemTryWait(sem); |
167 } | 167 } |
168 if (timeout == SDL_MUTEX_MAXWAIT) { | 168 if (timeout == SDL_MUTEX_MAXWAIT) { |
169 return SDL_SemWait (sem); | 169 return SDL_SemWait(sem); |
170 } | 170 } |
171 | 171 |
172 /* Ack! We have to busy wait... */ | 172 /* Ack! We have to busy wait... */ |
173 timeout += SDL_GetTicks (); | 173 timeout += SDL_GetTicks(); |
174 do { | 174 do { |
175 retval = SDL_SemTryWait (sem); | 175 retval = SDL_SemTryWait(sem); |
176 if (retval == 0) { | 176 if (retval == 0) { |
177 break; | 177 break; |
178 } | 178 } |
179 SDL_Delay (1); | 179 SDL_Delay(1); |
180 } | 180 } |
181 while (SDL_GetTicks () < timeout); | 181 while (SDL_GetTicks() < timeout); |
182 | 182 |
183 return retval; | 183 return retval; |
184 } | 184 } |
185 | 185 |
186 Uint32 | 186 Uint32 |
187 SDL_SemValue (SDL_sem * sem) | 187 SDL_SemValue(SDL_sem * sem) |
188 { | 188 { |
189 int ret = 0; | 189 int ret = 0; |
190 if (sem) { | 190 if (sem) { |
191 sem_getvalue (sem->sem, &ret); | 191 sem_getvalue(sem->sem, &ret); |
192 if (ret < 0) { | 192 if (ret < 0) { |
193 ret = 0; | 193 ret = 0; |
194 } | 194 } |
195 } | 195 } |
196 return (Uint32) ret; | 196 return (Uint32) ret; |
197 } | 197 } |
198 | 198 |
199 int | 199 int |
200 SDL_SemPost (SDL_sem * sem) | 200 SDL_SemPost(SDL_sem * sem) |
201 { | 201 { |
202 int retval; | 202 int retval; |
203 | 203 |
204 if (!sem) { | 204 if (!sem) { |
205 SDL_SetError ("Passed a NULL semaphore"); | 205 SDL_SetError("Passed a NULL semaphore"); |
206 return -1; | 206 return -1; |
207 } | 207 } |
208 | 208 |
209 retval = sem_post (sem->sem); | 209 retval = sem_post(sem->sem); |
210 if (retval < 0) { | 210 if (retval < 0) { |
211 SDL_SetError ("sem_post() failed"); | 211 SDL_SetError("sem_post() failed"); |
212 } | 212 } |
213 return retval; | 213 return retval; |
214 } | 214 } |
215 | 215 |
216 #endif /* !SDL_THREADS_DISABLED */ | 216 #endif /* !SDL_THREADS_DISABLED */ |