From 2a1ec9c36b8064e686ec6eb7149d30c103baddd0 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Sun, 15 Jul 2018 13:41:22 +0100 Subject: [PATCH] remove sleep`qq --- library/system.yap | 13 --------- library/system/sys.c | 68 -------------------------------------------- 2 files changed, 81 deletions(-) diff --git a/library/system.yap b/library/system.yap index c5ac7631e..8f1640711 100644 --- a/library/system.yap +++ b/library/system.yap @@ -50,7 +50,6 @@ shell/0, shell/1, shell/2, - sleep/1, system/0, system/1, system/2, @@ -205,18 +204,6 @@ WIN32 environment YAP will use `COMSPEC` if `SHELL` is undefined, in this case with the option `" /c "`. -*/ -/** @pred sleep(+ _Time_) - - -Block the current thread for _Time_ seconds. When YAP is compiled -without multi-threading support, this predicate blocks the YAP process. -The number of seconds must be a positive number, and it may an integer -or a float. The Unix implementation uses `usleep` if the number of -seconds is below one, and `sleep` if it is over a second. The WIN32 -implementation uses `Sleep` for both cases. - - */ /** @pred system diff --git a/library/system/sys.c b/library/system/sys.c index da9290a29..0a8c89580 100644 --- a/library/system/sys.c +++ b/library/system/sys.c @@ -852,73 +852,6 @@ static YAP_Bool plwait(void) { #endif } -static YAP_Bool p_sleep(void) { - YAP_Term ts = YAP_ARG1; -#if defined(__MINGW32__) || _MSC_VER - { - unsigned long int secs = 0, usecs = 0, msecs, out; - if (YAP_IsIntTerm(ts)) { - secs = YAP_IntOfTerm(ts); - } else if (YAP_IsFloatTerm(ts)) { - double tfl = YAP_FloatOfTerm(ts); - if (tfl > 1.0) - secs = tfl; - else - usecs = tfl * 1000000; - } - msecs = secs * 1000 + usecs / 1000; - Sleep(msecs); - /* no errors possible */ - out = 0; - return (YAP_Unify(YAP_ARG2, YAP_MkIntTerm(out))); - } -#elif HAVE_NANOSLEEP - { - struct timespec req; - int out; - - if (YAP_IsFloatTerm(ts)) { - double tfl = YAP_FloatOfTerm(ts); - - req.tv_nsec = (tfl - floor(tfl)) * 1000000000; - req.tv_sec = rint(tfl); - } else { - req.tv_nsec = 0; - req.tv_sec = YAP_IntOfTerm(ts); - } - out = nanosleep(&req, NULL); - return (YAP_Unify(YAP_ARG2, YAP_MkIntTerm(out))); - } -#elif HAVE_USLEEP - { - useconds_t usecs; - if (YAP_IsFloatTerm(ts)) { - double tfl = YAP_FloatOfTerm(ts); - - usecs = rint(tfl * 1000000); - } else { - usecs = YAP_IntOfTerm(ts) * 1000000; - } - out = usleep(usecs); - return (YAP_Unify(YAP_ARG2, YAP_MkIntTerm(out))); - } -#elif HAVE_SLEEP - { - unsigned int secs, out; - if (YAP_IsFloatTerm(ts)) { - secs = rint(YAP_FloatOfTerm(ts)); - } else { - secs = YAP_IntOfTerm(ts); - } - out = sleep(secs); - return (YAP_Unify(YAP_ARG2, YAP_MkIntTerm(out))); - } -#else - YAP_Error(0, 0L, "sleep not available in this configuration"); - return FALSE: -#endif -} - /* host info */ static YAP_Bool host_name(void) { @@ -1066,7 +999,6 @@ X_API void init_sys(void) { YAP_UserCPredicate("tmpnam", p_tmpnam, 2); YAP_UserCPredicate("tmpdir", p_tmpdir, 2); YAP_UserCPredicate("rename_file", rename_file, 3); - YAP_UserCPredicate("sleep", p_sleep, 2); YAP_UserCPredicate("read_link", read_link, 2); YAP_UserCPredicate("error_message", error_message, 2); YAP_UserCPredicate("win", win, 0);