Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/thread%2Dring+benchmark?V=4
QUERY_STRINGV=4
CONTENT_TYPE
DOCUMENT_URI/revision/thread-ring+benchmark
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.71.254.217
REMOTE_PORT49792
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR52.14.168.56
HTTP_CF_RAY87f3944dfd5622c4-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP52.14.168.56
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit {thread-ring benchmark} {See http://shootout.alioth.debian.org/gp4/benchmark.php?test=threadring&lang=all


----
[jmn]
I tried the following, but it errors out with "can't create a new thread" - even though my system appears to have plenty of free memory.

Any ideas as to what limit I'm hitting? 

''[escargo] 4 Jun 2008'' - Well, how about telling us what version of Tcl and system you are using,
plus a description of its hardware resources?
=======
 set ring_size 503
 set N 1000
 package require Thread
 proc done {} {
 	set ::done 1
 }
 set script {
 	proc accept {t} {
 		if {$t == 0} {
 			puts stdout "%i%"
 			thread::send -async %m% done
 			return
 		}
 		thread::send -async %n% [list accept [expr {$t - 1}] ]
 	}
 	%do%
 }
 set t1 [set tnext [thread::create {thread::wait}]]
 for {set i $ring_size} {$i >1} {incr i -1} {
  	set tnext [thread::create [string map [list %m% [thread::id] %i% $i %n% $tnext %do% "thread::wait"] $script]]
 }
 #close the ring
 set script [string map [list %m% [thread::id] %i% 1 %n% $tnext %do% [list accept $N]] $script]
 thread::send -async $t1 $script
 vwait ::done 
======

----
!!!!!!
%| [Category Performance] |%
!!!!!!} regexp2} CALL {my render {thread-ring benchmark} {See http://shootout.alioth.debian.org/gp4/benchmark.php?test=threadring&lang=all


----
[jmn]
I tried the following, but it errors out with "can't create a new thread" - even though my system appears to have plenty of free memory.

Any ideas as to what limit I'm hitting? 

''[escargo] 4 Jun 2008'' - Well, how about telling us what version of Tcl and system you are using,
plus a description of its hardware resources?
=======
 set ring_size 503
 set N 1000
 package require Thread
 proc done {} {
 	set ::done 1
 }
 set script {
 	proc accept {t} {
 		if {$t == 0} {
 			puts stdout "%i%"
 			thread::send -async %m% done
 			return
 		}
 		thread::send -async %n% [list accept [expr {$t - 1}] ]
 	}
 	%do%
 }
 set t1 [set tnext [thread::create {thread::wait}]]
 for {set i $ring_size} {$i >1} {incr i -1} {
  	set tnext [thread::create [string map [list %m% [thread::id] %i% $i %n% $tnext %do% "thread::wait"] $script]]
 }
 #close the ring
 set script [string map [list %m% [thread::id] %i% 1 %n% $tnext %do% [list accept $N]] $script]
 thread::send -async $t1 $script
 vwait ::done 
======

----
!!!!!!
%| [Category Performance] |%
!!!!!!}} CALL {my revision {thread-ring benchmark}} CALL {::oo::Obj6482189 process revision/thread%2Dring+benchmark} CALL {::oo::Obj6482187 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4