Diff
Not logged in

Differences From Artifact [561911f22c]:

To Artifact [7bf974cbb0]:


145
146
147
148
149
150
151




152
153
154
155
156
157
158
159
160
161
162
163
164














165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189

190
191
192
193
194
195
196
197








198

199
200
201
202
203
204
205
206







207

208
209
210
211
212
213
214
145
146
147
148
149
150
151
152
153
154
155













156
157
158
159
160
161
162
163
164
165
166
167
168
169

























170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186

187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202

203
204
205
206
207
208
209
210







+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+








+
+
+
+
+
+
+
+
-
+








+
+
+
+
+
+
+
-
+







}

test async-3.1 {deleting handlers} testasync {
    set x {}
    list [catch {testasync mark $hm2 "foobar" 5} msg] $msg $x
} {3 del2 {0 0 0 del1 del2}}

test async-4.1 {async interrupting bytecode sequence} -constraints {
    testasync threaded
} -setup {
    set hm [testasync create async3]
proc nothing {} {
    # empty proc
}
proc hang1 {handle} {
    global aresult
    set aresult {Async event not delivered}
    testasync marklater $handle
    for {set i 0} {
	$i < 2500000  &&  $aresult eq "Async event not delivered"
    } {incr i} {
	nothing
    }
    return $aresult
    proc nothing {} {
	# empty proc
    }
} -body {
    apply {{handle} {
	global aresult
	set aresult {Async event not delivered}
	testasync marklater $handle
	for {set i 0} {
	    $i < 2500000  &&  $aresult eq "Async event not delivered"
	} {incr i} {
	    nothing
	}
	return $aresult
}
proc hang2 {handle} {
    global aresult
    set aresult {Async event not delivered}
    testasync marklater $handle
    for {set i 0} {
	$i < 2500000  &&  $aresult eq "Async event not delivered"
    } {incr i} {}
    return $aresult
}
proc hang3 {handle} [concat {
    global aresult
    set aresult {Async event not delivered}
    testasync marklater $handle
    set i 0
} [string repeat {;incr i;} 1500000] {
    return $aresult
}]

test async-4.1 {async interrupting bytecode sequence} -constraints {
    testasync threaded
} -setup {
    set hm [testasync create async3]
} -body {
    hang1 $hm
    }} $hm
} -result {test pattern} -cleanup {
    testasync delete $hm
}
test async-4.2 {async interrupting straight bytecode sequence} -constraints {
    testasync threaded
} -setup {
    set hm [testasync create async3]
} -body {
    apply {{handle} {
	global aresult
	set aresult {Async event not delivered}
	testasync marklater $handle
	for {set i 0} {
	    $i < 2500000  &&  $aresult eq "Async event not delivered"
	} {incr i} {}
	return $aresult
    hang2 $hm
    }} $hm
} -result {test pattern} -cleanup {
    testasync delete $hm
}
test async-4.3 {async interrupting loop-less bytecode sequence} -constraints {
    testasync threaded
} -setup {
    set hm [testasync create async3]
} -body {
    apply [list {handle} [concat {
	global aresult
	set aresult {Async event not delivered}
	testasync marklater $handle
	set i 0
    } [string repeat {;incr i;} 1500000] {
	return $aresult
    hang3 $hm
    }]] $hm
} -result {test pattern} -cleanup {
    testasync delete $hm
}

# cleanup
if {[testConstraint testasync]} {
    testasync delete