@@ -27,10 +27,10 @@ rust_task_thread::rust_task_thread(rust_scheduler *sched,
27
27
id(id),
28
28
should_exit(false ),
29
29
cached_c_stack(NULL ),
30
- newborn_tasks(this , " newborn " ),
31
- running_tasks(this , " running " ),
32
- blocked_tasks(this , " blocked " ),
33
- dead_tasks(this , " dead " ),
30
+ newborn_tasks(this ),
31
+ running_tasks(this ),
32
+ blocked_tasks(this ),
33
+ dead_tasks(this ),
34
34
kernel(sched->kernel),
35
35
sched(sched),
36
36
srv(srv),
@@ -248,7 +248,7 @@ rust_task_thread::start_main_loop() {
248
248
" , state: %s" ,
249
249
scheduled_task->name ,
250
250
(uintptr_t )scheduled_task,
251
- state_list (scheduled_task->get_state ())-> name );
251
+ state_name (scheduled_task->get_state ()));
252
252
253
253
place_task_in_tls (scheduled_task);
254
254
@@ -262,7 +262,7 @@ rust_task_thread::start_main_loop() {
262
262
" in state '%s', worker id=%d" PRIxPTR,
263
263
scheduled_task->name ,
264
264
(uintptr_t )scheduled_task,
265
- state_list (scheduled_task->get_state ())-> name ,
265
+ state_name (scheduled_task->get_state ()),
266
266
id);
267
267
268
268
reap_dead_tasks ();
@@ -316,20 +316,35 @@ rust_task_thread::state_list(rust_task_state state) {
316
316
}
317
317
}
318
318
319
+ const char *
320
+ rust_task_thread::state_name (rust_task_state state) {
321
+ switch (state) {
322
+ case task_state_newborn:
323
+ return " newborn" ;
324
+ case task_state_running:
325
+ return " running" ;
326
+ case task_state_blocked:
327
+ return " blocked" ;
328
+ case task_state_dead:
329
+ return " dead" ;
330
+ default :
331
+ assert (false );
332
+ return " " ;
333
+ }
334
+ }
335
+
319
336
void
320
337
rust_task_thread::transition (rust_task *task,
321
338
rust_task_state src, rust_task_state dst,
322
339
rust_cond *cond, const char * cond_name) {
323
340
scoped_lock with (lock);
324
- rust_task_list *src_list = state_list (src);
325
- rust_task_list *dst_list = state_list (dst);
326
341
DLOG (this , task,
327
342
" task %s " PTR " state change '%s' -> '%s' while in '%s'" ,
328
- name, (uintptr_t )this , src_list-> name , dst_list-> name ,
329
- state_list (task->get_state ())-> name );
343
+ name, (uintptr_t )this , state_name (src), state_name (dst) ,
344
+ state_name (task->get_state ()));
330
345
I (this , task->get_state () == src);
331
- src_list ->remove (task);
332
- dst_list ->append (task);
346
+ state_list (src) ->remove (task);
347
+ state_list (dst) ->append (task);
333
348
task->set_state (dst, cond, cond_name);
334
349
335
350
lock.signal ();
0 commit comments