Hi
I am using the latest TInyos 2.x from Subersion, on a Shimmer (MSP430) mote.
I am experiencing unexpected behaviour using the Thread.pause() and
Thread,resume() functions when using TosThreads.
My understanding is that when Thread.pause() is called from within a thread it
should sleep, until another thread or event calls Thread.resume(). However, I
am finding that while Thread.pause() returns SUCCESS, the thread continues
executing.
When using condition a variable the thread waiting on the condition variable
sleeps until the condition variable is signalled.
I notice in tinyos-2.x/tos/lib/tosthreads/system/StaticThreadP.nc, which
provides the Thread interface, Thread.pause() calls
ThreadScheduler.stopThread(), whereas I would have expected it to call
ThreadScheduler.suspendCurrentThread() as is the case with the condition
variable implementation. Using the patch below makes Thread.pause() and
Thread.resume() function as expected.
Have I misinterpreted the way pause and resume should function? Does this fix
make sense?
Thanks
David
----------------------------------------------------------------------------------------------------------
Index: StaticThreadP.nc
===================================================================
--- StaticThreadP.nc (revision 5307)
+++ StaticThreadP.nc (working copy)
@@ -73,11 +73,11 @@
}
command error_t Thread.pause[uint8_t id]() {
- return call ThreadScheduler.stopThread(id);
+ return call ThreadScheduler.suspendCurrentThread();
}
command error_t Thread.resume[uint8_t id]() {
- return call ThreadScheduler.startThread(id);
+ return call ThreadScheduler.wakeupThread(id);
}
command error_t Thread.stop[uint8_t id]() {
---------------------------------------- End Diff
------------------------------------------------------
The information in this e-mail may be confidential and subject to legal
professional privilege and/or copyright. National ICT Australia Limited accepts
no liability for any damage caused by this email or its attachments.
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help