diff options
-rw-r--r-- | src/til.c | 19 | ||||
-rw-r--r-- | src/til.h | 1 |
2 files changed, 20 insertions, 0 deletions
@@ -26,6 +26,7 @@ #define TIL_DEFAULT_NESTED_MODULE "compose" static til_threads_t *til_threads; +static struct timeval til_start_tv; extern til_module_t blinds_module; extern til_module_t checkers_module; @@ -92,6 +93,8 @@ int til_init(void) if (!(til_threads = til_threads_create())) return -errno; + gettimeofday(&til_start_tv, NULL); + return 0; } @@ -109,6 +112,22 @@ void til_shutdown(void) } +/* returns number of "ticks" since til_init(), which are currently milliseconds */ +unsigned til_ticks_now(void) +{ + struct timeval now, diff; + + /* for profiling purposes in particular, it'd be nice to bump up to microseconds... + * but then it'll prolly need uint64_t + */ + + gettimeofday(&now, NULL); + timersub(&now, &til_start_tv, &diff); + + return diff.tv_sec * 1000 + diff.tv_usec / 1000; +} + + /* "blank" built-in module */ static void _blank_prepare_frame(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr, til_frame_plan_t *res_frame_plan) { @@ -40,6 +40,7 @@ struct til_module_t { int til_init(void); void til_quiesce(void); void til_shutdown(void); +unsigned til_ticks_now(void); const til_module_t * til_lookup_module(const char *name); void til_get_modules(const til_module_t ***res_modules, size_t *res_n_modules); char * til_get_module_names(unsigned flags_excluded, const char **exclusions); |