aboutsummaryrefslogtreecommitdiff
path: root/jim-eventloop.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-09-16 09:45:52 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:53 +1000
commit8977e7375635cfcc0d9a3461efba4f28268a4b89 (patch)
tree3bd2e9991ae5d04013cca82d5ab34b89d6d4f938 /jim-eventloop.c
parent6c3dfbc2842400da314f139a043b908cda499839 (diff)
downloadjimtcl-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.c10
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]);