88#include "buffer.h"
99#include "vector.h"
1010#include "core.h"
11+ #include "segment.h"
12+ #include "utility.h"
1113
1214static __thread core core_default = {0 };
1315
@@ -19,28 +21,13 @@ static core_status core_default_callback(core_event *event __attribute__((unused
1921 return CORE_OK ;
2022}
2123
22- static uint64_t core_tsc (void )
23- {
24- #if defined(__x86_64__ ) || defined(__amd64__ )
25- uint32_t lo , hi ;
26- __asm__ volatile ("RDTSC"
27- : "=a" (lo ), "=d" (hi ));
28- return (((uint64_t ) hi ) << 32 ) | lo ;
29- #else
30- return 0 ;
31- #endif
32- }
33-
3424static core * core_get (core * core )
3525{
3626 return core ? core : & core_default ;
3727}
3828
3929void core_construct (core * core )
4030{
41- if (core )
42- * core = (struct core ) {0 };
43-
4431 core = core_get (core );
4532 if (!core -> ref )
4633 {
@@ -85,20 +72,20 @@ void core_loop(core *core)
8572 uint64_t t0 , t1 ;
8673 int n , i ;
8774
88- t1 = core_tsc ();
75+ t1 = utility_tsc ();
8976 core = core_get (core );
9077 while (core -> active && core -> errors == 0 && (core -> handlers_active || vector_size (& core -> next )))
9178 {
9279 for (i = 0 ; (size_t ) i < vector_size (& core -> next ); i ++ )
9380 (void ) core_dispatch (vector_at (& core -> next , i ), 0 , 0 );
9481 vector_clear (& core -> next , NULL );
9582
96- t0 = core_tsc ();
83+ t0 = utility_tsc ();
9784 core -> time = 0 ;
9885 n = core -> handlers_active ? epoll_wait (core -> fd , events , CORE_MAX_EVENTS , -1 ) : 0 ;
9986 core -> errors += n == -1 ;
10087 core -> counters .awake += t0 - t1 ;
101- t1 = core_tsc ();
88+ t1 = utility_tsc ();
10289 core -> counters .sleep += t1 - t0 ;
10390 core -> counters .polls ++ ;
10491 core -> counters .events += n ;
@@ -158,7 +145,7 @@ void core_delete(core *core, int fd)
158145 core -> handlers_active -- ;
159146}
160147
161- int core_next (core * core , core_callback * callback , void * state )
148+ core_id core_next (core * core , core_callback * callback , void * state )
162149{
163150 core_handler handler = {.callback = callback , .state = state };
164151
@@ -167,7 +154,7 @@ int core_next(core *core, core_callback *callback, void *state)
167154 return vector_size (& core -> next );
168155}
169156
170- void core_cancel (core * core , int id )
157+ void core_cancel (core * core , core_id id )
171158{
172159 core_handler * handlers ;
173160
@@ -179,7 +166,7 @@ void core_cancel(core *core, int id)
179166 handlers [id - 1 ] = core_handler_default ;
180167}
181168
182- int core_errors (core * core )
169+ size_t core_errors (core * core )
183170{
184171 core = core_get (core );
185172 return core -> errors ;
0 commit comments