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