44 * Copyright (c) 2016 Christopher Haster
55 * Distributed under the MIT license
66 */
7- #include "events .h"
7+ #include "equeue .h"
88
99#include <stdlib.h>
1010#include <string.h>
@@ -29,23 +29,23 @@ int equeue_create_inplace(equeue_t *q, unsigned size, void *buffer) {
2929
3030 q -> queue = 0 ;
3131 q -> next_id = 42 ;
32- q -> break_ = (struct event ){
32+ q -> break_ = (struct equeue_event ){
3333 .id = 0 ,
3434 .period = -1 ,
3535 };
3636
3737 int err ;
38- err = events_sema_create (& q -> eventsema );
38+ err = equeue_sema_create (& q -> eventsema );
3939 if (err < 0 ) {
4040 return err ;
4141 }
4242
43- err = events_mutex_create (& q -> queuelock );
43+ err = equeue_mutex_create (& q -> queuelock );
4444 if (err < 0 ) {
4545 return err ;
4646 }
4747
48- err = events_mutex_create (& q -> freelock );
48+ err = equeue_mutex_create (& q -> freelock );
4949 if (err < 0 ) {
5050 return err ;
5151 }
@@ -55,14 +55,14 @@ int equeue_create_inplace(equeue_t *q, unsigned size, void *buffer) {
5555
5656void equeue_destroy (equeue_t * q ) {
5757 while (q -> queue ) {
58- struct event * e = q -> queue ;
58+ struct equeue_event * e = q -> queue ;
5959 q -> queue = e -> next ;
6060 equeue_dealloc (q , e + 1 );
6161 }
6262
63- events_mutex_destroy (& q -> freelock );
64- events_mutex_destroy (& q -> queuelock );
65- events_sema_destroy (& q -> eventsema );
63+ equeue_mutex_destroy (& q -> freelock );
64+ equeue_mutex_destroy (& q -> queuelock );
65+ equeue_sema_destroy (& q -> eventsema );
6666 free (q -> buffer );
6767}
6868
@@ -74,7 +74,7 @@ static void *equeue_mem_alloc(equeue_t *q, unsigned size) {
7474 size = sizeof (struct equeue_chunk );
7575 }
7676
77- events_mutex_lock (& q -> freelock );
77+ equeue_mutex_lock (& q -> freelock );
7878
7979 for (struct equeue_chunk * * p = & q -> chunks ; * p ; p = & (* p )-> nchunk ) {
8080 if ((* p )-> size >= size ) {
@@ -85,7 +85,7 @@ static void *equeue_mem_alloc(equeue_t *q, unsigned size) {
8585 } else {
8686 * p = c -> nchunk ;
8787 }
88- events_mutex_unlock (& q -> freelock );
88+ equeue_mutex_unlock (& q -> freelock );
8989 return (unsigned * )c + 1 ;
9090 }
9191 }
@@ -95,18 +95,18 @@ static void *equeue_mem_alloc(equeue_t *q, unsigned size) {
9595 q -> slab .data += size ;
9696 q -> slab .size -= size ;
9797 c -> size = size ;
98- events_mutex_unlock (& q -> freelock );
98+ equeue_mutex_unlock (& q -> freelock );
9999 return (unsigned * )c + 1 ;
100100 }
101101
102- events_mutex_unlock (& q -> freelock );
102+ equeue_mutex_unlock (& q -> freelock );
103103 return 0 ;
104104}
105105
106106static void equeue_mem_dealloc (equeue_t * q , void * e ) {
107107 struct equeue_chunk * c = (struct equeue_chunk * )((unsigned * )e - 1 );
108108
109- events_mutex_lock (& q -> freelock );
109+ equeue_mutex_lock (& q -> freelock );
110110
111111 struct equeue_chunk * * p = & q -> chunks ;
112112 while (* p && (* p )-> size < c -> size ) {
@@ -122,7 +122,7 @@ static void equeue_mem_dealloc(equeue_t *q, void *e) {
122122 }
123123 * p = c ;
124124
125- events_mutex_unlock (& q -> freelock );
125+ equeue_mutex_unlock (& q -> freelock );
126126}
127127
128128// event allocation functions
@@ -135,7 +135,8 @@ static inline int equeue_next_id(equeue_t *q) {
135135}
136136
137137void * equeue_alloc (equeue_t * q , unsigned size ) {
138- struct event * e = equeue_mem_alloc (q , sizeof (struct event ) + size );
138+ struct equeue_event * e = equeue_mem_alloc (q ,
139+ sizeof (struct equeue_event ) + size );
139140 if (!e ) {
140141 return 0 ;
141142 }
@@ -149,7 +150,7 @@ void *equeue_alloc(equeue_t *q, unsigned size) {
149150}
150151
151152void equeue_dealloc (equeue_t * q , void * p ) {
152- struct event * e = (struct event * )p - 1 ;
153+ struct equeue_event * e = (struct equeue_event * )p - 1 ;
153154
154155 if (e -> dtor ) {
155156 e -> dtor (e + 1 );
@@ -163,10 +164,10 @@ static inline int equeue_tickdiff(unsigned a, unsigned b) {
163164 return (int )(a - b );
164165}
165166
166- static void equeue_enqueue (equeue_t * q , struct event * e , unsigned ms ) {
167- e -> target = events_tick () + ms ;
167+ static void equeue_enqueue (equeue_t * q , struct equeue_event * e , unsigned ms ) {
168+ e -> target = equeue_tick () + ms ;
168169
169- struct event * * p = & q -> queue ;
170+ struct equeue_event * * p = & q -> queue ;
170171 while (* p && equeue_tickdiff ((* p )-> target , e -> target ) <= 0 ) {
171172 p = & (* p )-> next ;
172173 }
@@ -175,10 +176,10 @@ static void equeue_enqueue(equeue_t *q, struct event *e, unsigned ms) {
175176 * p = e ;
176177}
177178
178- static struct event * equeue_dequeue (equeue_t * q , int id ) {
179- for (struct event * * p = & q -> queue ; * p ; p = & (* p )-> next ) {
179+ static struct equeue_event * equeue_dequeue (equeue_t * q , int id ) {
180+ for (struct equeue_event * * p = & q -> queue ; * p ; p = & (* p )-> next ) {
180181 if ((* p )-> id == id ) {
181- struct event * e = * p ;
182+ struct equeue_event * e = * p ;
182183 * p = (* p )-> next ;
183184 return e ;
184185 }
@@ -187,32 +188,32 @@ static struct event *equeue_dequeue(equeue_t *q, int id) {
187188 return 0 ;
188189}
189190
190- static int equeue_post_in (equeue_t * q , struct event * e , int ms ) {
191+ static int equeue_post_in (equeue_t * q , struct equeue_event * e , int ms ) {
191192 int id = e -> id ;
192193 if (ms < 0 ) {
193194 equeue_dealloc (q , e + 1 );
194195 return id ;
195196 }
196197
197- events_mutex_lock (& q -> queuelock );
198+ equeue_mutex_lock (& q -> queuelock );
198199 equeue_enqueue (q , e , ms );
199- events_mutex_unlock (& q -> queuelock );
200+ equeue_mutex_unlock (& q -> queuelock );
200201
201- events_sema_release (& q -> eventsema );
202+ equeue_sema_release (& q -> eventsema );
202203 return id ;
203204}
204205
205206int equeue_post (equeue_t * q , void (* cb )(void * ), void * p ) {
206- struct event * e = (struct event * )p - 1 ;
207+ struct equeue_event * e = (struct equeue_event * )p - 1 ;
207208 e -> cb = cb ;
208209 int id = equeue_post_in (q , e , e -> target );
209210 return id ;
210211}
211212
212213void equeue_cancel (equeue_t * q , int id ) {
213- events_mutex_lock (& q -> queuelock );
214- struct event * e = equeue_dequeue (q , id );
215- events_mutex_unlock (& q -> queuelock );
214+ equeue_mutex_lock (& q -> queuelock );
215+ struct equeue_event * e = equeue_dequeue (q , id );
216+ equeue_mutex_unlock (& q -> queuelock );
216217
217218 if (e ) {
218219 equeue_dealloc (q , e + 1 );
@@ -234,27 +235,27 @@ void equeue_dispatch(equeue_t *q, int ms) {
234235 while (q -> queue ) {
235236 deadline = -1 ;
236237
237- events_mutex_lock (& q -> queuelock );
238+ equeue_mutex_lock (& q -> queuelock );
238239 if (!q -> queue ) {
239- events_mutex_unlock (& q -> queuelock );
240+ equeue_mutex_unlock (& q -> queuelock );
240241 break ;
241242 }
242243
243- deadline = equeue_tickdiff (q -> queue -> target , events_tick ());
244+ deadline = equeue_tickdiff (q -> queue -> target , equeue_tick ());
244245 if (deadline > 0 ) {
245- events_mutex_unlock (& q -> queuelock );
246+ equeue_mutex_unlock (& q -> queuelock );
246247 break ;
247248 }
248249
249- struct event * e = q -> queue ;
250+ struct equeue_event * e = q -> queue ;
250251 q -> queue = e -> next ;
251252
252253 if (e -> period >= 0 ) {
253254 // requeue periodic tasks to avoid race conditions
254255 // in equeue_cancel
255256 equeue_enqueue (q , e , e -> period );
256257 }
257- events_mutex_unlock (& q -> queuelock );
258+ equeue_mutex_unlock (& q -> queuelock );
258259
259260 if (e == & q -> break_ ) {
260261 return ;
@@ -268,23 +269,23 @@ void equeue_dispatch(equeue_t *q, int ms) {
268269 }
269270 }
270271
271- events_sema_wait (& q -> eventsema , deadline );
272+ equeue_sema_wait (& q -> eventsema , deadline );
272273 }
273274}
274275
275276// event functions
276- void event_delay (void * p , int ms ) {
277- struct event * e = (struct event * )p - 1 ;
277+ void equeue_event_delay (void * p , int ms ) {
278+ struct equeue_event * e = (struct equeue_event * )p - 1 ;
278279 e -> target = ms ;
279280}
280281
281- void event_period (void * p , int ms ) {
282- struct event * e = (struct event * )p - 1 ;
282+ void equeue_event_period (void * p , int ms ) {
283+ struct equeue_event * e = (struct equeue_event * )p - 1 ;
283284 e -> period = ms ;
284285}
285286
286- void event_dtor (void * p , void (* dtor )(void * )) {
287- struct event * e = (struct event * )p - 1 ;
287+ void equeue_event_dtor (void * p , void (* dtor )(void * )) {
288+ struct equeue_event * e = (struct equeue_event * )p - 1 ;
288289 e -> dtor = dtor ;
289290}
290291
@@ -316,7 +317,7 @@ int equeue_call_in(equeue_t *q, int ms, void (*cb)(void*), void *data) {
316317 return 0 ;
317318 }
318319
319- event_delay (e , ms );
320+ equeue_event_delay (e , ms );
320321 e -> cb = cb ;
321322 e -> data = data ;
322323 return equeue_post (q , ecallback_dispatch , e );
@@ -328,8 +329,8 @@ int equeue_call_every(equeue_t *q, int ms, void (*cb)(void*), void *data) {
328329 return 0 ;
329330 }
330331
331- event_delay (e , ms );
332- event_period (e , ms );
332+ equeue_event_delay (e , ms );
333+ equeue_event_period (e , ms );
333334 e -> cb = cb ;
334335 e -> data = data ;
335336 return equeue_post (q , ecallback_dispatch , e );
0 commit comments