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 */