Diff
Not logged in

Differences From Artifact [68258e378d]:

To Artifact [d07e562e65]:


6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882

6883
6884
6885
6886
6887
6888
6889

6890
6891
6892
6893
6894
6895
6896
    set timer [after 50 set z timeout]
    vwait z
    after cancel $timer
    set z
} -cleanup {
    close $f
} -result [list {del calling recursive} {del deleted notcalled} \
	{del deleted myself} {del after recursive}]
test io-50.6 {testing handler deletion vs reentrant calls} -constraints {testchannelevent testservicemode} -setup {
    file delete $path(test1)
} -body {
    set f [open $path(test1) w]
    close $f
    proc first {f} {
	variable u
	variable z

	if {"$u" == "toplevel"} {
	    lappend z "first called"
	    set u first
	    set timer [after 50 lappend z timeout]
	    vwait z
	    after cancel $timer
	    lappend z "first after toplevel"

	} else {
	    lappend z "first called not toplevel"
	}
    }
    proc second {f} {
	variable u
	variable z







|








>







>







6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
    set timer [after 50 set z timeout]
    vwait z
    after cancel $timer
    set z
} -cleanup {
    close $f
} -result [list {del calling recursive} {del deleted notcalled} \
	       {del deleted myself} {del after recursive}]
test io-50.6 {testing handler deletion vs reentrant calls} -constraints {testchannelevent testservicemode} -setup {
    file delete $path(test1)
} -body {
    set f [open $path(test1) w]
    close $f
    proc first {f} {
	variable u
	variable z
	variable done
	if {"$u" == "toplevel"} {
	    lappend z "first called"
	    set u first
	    set timer [after 50 lappend z timeout]
	    vwait z
	    after cancel $timer
	    lappend z "first after toplevel"
	    set done 1
	} else {
	    lappend z "first called not toplevel"
	}
    }
    proc second {f} {
	variable u
	variable z
6904
6905
6906
6907
6908
6909
6910

6911
6912
6913
6914
6915
6916





6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
	} else {
	    lappend z "second called, cannot happen!"
	    testchannelevent $f removeall
	}
    }
    set z ""
    set u toplevel

    testservicemode 0
    set f [open $path(test1) r]
    testchannelevent $f add readable [namespace code [list second $f]]
    testchannelevent $f add readable [namespace code [list first $f]]
    testservicemode 1
    update





    set z
} -cleanup {
    close $f
} -result [list {first called} {first called not toplevel} \
	{second called, first time} {second called, second time} \
	{first after toplevel}]

test io-51.1 {Test old socket deletion on Macintosh} {socket} {
    set x 0
    set result ""
    proc accept {s a p} {
	variable x
	variable wait
	fconfigure $s -blocking off







>






>
>
>
>
>






<







6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930

6931
6932
6933
6934
6935
6936
6937
	} else {
	    lappend z "second called, cannot happen!"
	    testchannelevent $f removeall
	}
    }
    set z ""
    set u toplevel
    set done 0
    testservicemode 0
    set f [open $path(test1) r]
    testchannelevent $f add readable [namespace code [list second $f]]
    testchannelevent $f add readable [namespace code [list first $f]]
    testservicemode 1
    update
    if {!$done} {
	set $timer2 [after 200 lappend done timeout]
	vwait done
	after cancel timer2
    }
    set z
} -cleanup {
    close $f
} -result [list {first called} {first called not toplevel} \
	{second called, first time} {second called, second time} \
	{first after toplevel}]

test io-51.1 {Test old socket deletion on Macintosh} {socket} {
    set x 0
    set result ""
    proc accept {s a p} {
	variable x
	variable wait
	fconfigure $s -blocking off