null+****@clear*****
null+****@clear*****
2012年 5月 8日 (火) 12:55:56 JST
Susumu Yata 2012-05-08 12:55:56 +0900 (Tue, 08 May 2012)
New Revision: 953a2fcd776dd79005769dc3ab8227ad6939436e
Log:
Define grn_sleep/nanosleep() for replacing sleep/usleep().
Modified files:
lib/ctx.c
lib/groonga_in.h
Modified: lib/ctx.c (+19 -0)
===================================================================
--- lib/ctx.c 2012-05-07 21:20:31 +0900 (7b384d8)
+++ lib/ctx.c 2012-05-08 12:55:56 +0900 (79d33d0)
@@ -56,6 +56,25 @@ uint32_t grn_gtick;
int grn_uyield_count = 0;
#endif
+void grn_sleep(uint32_t seconds) {
+#ifdef WIN32
+ Sleep(seconds * 1000);
+#else // WIN32
+ sleep(seconds);
+#endif // WIN32
+}
+
+void grn_nanosleep(uint64_t nanoseconds) {
+#ifdef WIN32
+ Sleep((DWORD)(nanoseconds / 1000000));
+#else // WIN32
+ struct timespec interval;
+ interval.tv_sec = (time_t)(nanoseconds / 1000000000);
+ interval.tv_nsec = (long)(nanoseconds % 1000000000);
+ nanosleep(&interval, NULL);
+#endif // WIN32
+}
+
/* fixme by 2038 */
grn_rc
Modified: lib/groonga_in.h (+3 -0)
===================================================================
--- lib/groonga_in.h 2012-05-07 21:20:31 +0900 (521aa20)
+++ lib/groonga_in.h 2012-05-08 12:55:56 +0900 (cb907a4)
@@ -150,6 +150,9 @@
#define pid_t int
#endif
+GRN_API void grn_sleep(uint32_t seconds);
+GRN_API void grn_nanosleep(uint64_t nanoseconds);
+
#undef MSG_WAITALL
#define MSG_WAITALL 0 /* before Vista, not supported... */
#define SHUT_RDWR SD_BOTH