diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-09-16 09:45:52 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:53 +1000 |
commit | 8977e7375635cfcc0d9a3461efba4f28268a4b89 (patch) | |
tree | 3bd2e9991ae5d04013cca82d5ab34b89d6d4f938 /jim-eventloop.c | |
parent | 6c3dfbc2842400da314f139a043b908cda499839 (diff) | |
download | jimtcl-8977e7375635cfcc0d9a3461efba4f28268a4b89.zip jimtcl-8977e7375635cfcc0d9a3461efba4f28268a4b89.tar.gz jimtcl-8977e7375635cfcc0d9a3461efba4f28268a4b89.tar.bz2 |
Implement 'after ms'
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-eventloop.c')
-rw-r--r-- | jim-eventloop.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/jim-eventloop.c b/jim-eventloop.c index ec8bfd1..ff94f50 100644 --- a/jim-eventloop.c +++ b/jim-eventloop.c @@ -467,8 +467,8 @@ static int JimELAfterCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { INFO, CANCEL, RESTART, EXPIRE, CREATE }; int option = CREATE; - if (argc < 3) { - Jim_WrongNumArgs(interp, 1, argv, "<after milliseconds> script|cancel <id>"); + if (argc < 2) { + Jim_WrongNumArgs(interp, 1, argv, "<after milliseconds> ?script|cancel <id>?"); return JIM_ERR; } if (Jim_GetWide(interp, argv[1], &ms) != JIM_OK) { @@ -476,6 +476,12 @@ static int JimELAfterCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) return JIM_ERR; } } + else if (argc == 2) { + /* Simply a sleep */ + sleep(ms / 1000); + usleep((ms % 1000) * 1000); + return JIM_OK; + } switch (option) { case CREATE: Jim_IncrRefCount(argv[2]); |