2008-02-18 06:07:40 -05:00
|
|
|
! Copyright (C) 2008 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-02-18 08:30:16 -05:00
|
|
|
USING: threads kernel prettyprint prettyprint.config
|
2008-02-21 20:13:11 -05:00
|
|
|
io io.styles sequences assocs namespaces sorting boxes
|
2008-08-29 18:07:30 -04:00
|
|
|
heaps.private system math math.parser math.order accessors ;
|
2008-04-26 00:17:08 -04:00
|
|
|
IN: tools.threads
|
2008-02-18 06:07:40 -05:00
|
|
|
|
|
|
|
: thread. ( thread -- )
|
2008-08-30 13:35:14 -04:00
|
|
|
dup id>> pprint-cell
|
|
|
|
dup name>> over [ write-object ] with-cell
|
|
|
|
dup state>> [
|
2008-02-25 07:31:18 -05:00
|
|
|
[ dup self eq? "running" "yield" ? ] unless*
|
|
|
|
write
|
|
|
|
] with-cell
|
2008-02-21 20:13:11 -05:00
|
|
|
[
|
2008-08-30 13:35:14 -04:00
|
|
|
sleep-entry>> [
|
2008-11-19 02:50:05 -05:00
|
|
|
key>> micros [-] number>string write
|
|
|
|
" us" write
|
2008-02-21 20:13:11 -05:00
|
|
|
] when*
|
|
|
|
] with-cell ;
|
2008-02-18 06:07:40 -05:00
|
|
|
|
|
|
|
: threads. ( -- )
|
|
|
|
standard-table-style [
|
|
|
|
[
|
2008-04-11 08:15:26 -04:00
|
|
|
{ "ID:" "Name:" "Waiting on:" "Remaining sleep:" }
|
2008-02-18 06:07:40 -05:00
|
|
|
[ [ write ] with-cell ] each
|
|
|
|
] with-row
|
|
|
|
|
2008-02-18 17:20:18 -05:00
|
|
|
threads >alist sort-keys values [
|
2008-02-18 06:07:40 -05:00
|
|
|
[ thread. ] with-row
|
|
|
|
] each
|
|
|
|
] tabular-output ;
|