[Python-Dev] PEP needed? Introducing Tcl objects (original) (raw)
Tim Peters tim.one@comcast.net
Mon, 18 Feb 2002 23:57:22 -0500
- Previous message: [Python-Dev] PEP needed? Introducing Tcl objects
- Next message: [Python-Dev] PEP needed? Introducing Tcl objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Jeff Hobbs]
I guess I would need to get a better understanding of why it was designed with the sleep in the first place. Martin mentioned that it allows a thread switch to occur, but a shorter sleep interval would have done the same.
I believe Martin was correct in large part. The other part is that, without a sleep at all, we would have a pure busy loop here, competing for cycles non-stop with every process on the box.
About the length of the sleep, do note that Sleep(20) sleeps 20 milliseconds here (not seconds), and that the sleep is skipped so long as Tcl_DoOneEvent() says it's finding things to do. IOW, Tcl gets all the cycles it can it eat so long as it says it's busy, and doesn't generally wait more than about 0.02 seconds for another chance after it runs out of work to do.
Back when 20 was first picked, machines were slow enough that an utterly idle Tkinter app in the background still showed up as consuming a measurable percentage of a CPU, thanks to this not-so-busy loop. We could afford to make the sleep shorter on faster boxes, but I'm not sure I buy the argument that we're making Tcl/Tk look sluggish. The reason we hate the loop is more that it's a miserably ugly hack.
- Previous message: [Python-Dev] PEP needed? Introducing Tcl objects
- Next message: [Python-Dev] PEP needed? Introducing Tcl objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]