Sha256: ca09e465dbe2d6e91f4475362770b7e5cbfbea3a619bf77a1f21fbede805bf9f
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
#define _GNU_SOURCE #include <unistd.h> #include <sys/types.h> #define L1_CACHE_LINE_MAX 128 /* largest I've seen (Pentium 4) */ size_t rb_sp_l1_cache_line_size; void sleepy_penguin_init_epoll(void); #ifdef HAVE_SYS_TIMERFD_H void sleepy_penguin_init_timerfd(void); #else # define sleepy_penguin_init_timerfd() for(;0;) #endif #ifdef HAVE_SYS_EVENTFD_H void sleepy_penguin_init_eventfd(void); #else # define sleepy_penguin_init_eventfd() for(;0;) #endif #ifdef HAVE_SYS_INOTIFY_H void sleepy_penguin_init_inotify(void); #else # define sleepy_penguin_init_inotify() for(;0;) #endif #ifdef HAVE_SYS_SIGNALFD_H void sleepy_penguin_init_signalfd(void); #else # define sleepy_penguin_init_signalfd() for(;0;) #endif static size_t l1_cache_line_size_detect(void) { #ifdef _SC_LEVEL1_DCACHE_LINESIZE long tmp = sysconf(_SC_LEVEL1_DCACHE_LINESIZE); if (tmp > 0 && tmp <= L1_CACHE_LINE_MAX) return (size_t)tmp; #endif /* _SC_LEVEL1_DCACHE_LINESIZE */ return L1_CACHE_LINE_MAX; } void Init_sleepy_penguin_ext(void) { rb_sp_l1_cache_line_size = l1_cache_line_size_detect(); sleepy_penguin_init_epoll(); sleepy_penguin_init_timerfd(); sleepy_penguin_init_eventfd(); sleepy_penguin_init_inotify(); sleepy_penguin_init_signalfd(); }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sleepy_penguin-3.1.0.26.g7181 | ext/sleepy_penguin/init.c |