Hello.

(this may be irrelevant hint)

On Sun, 14 Sep 2014, Roadstar Runner wrote:
I have noticed that resource.granted() is signaled at startup.

What kind of startup & what kind of module ?
There is still unresolved bug for modules, that call request in Software.Init():

https://github.com/tinyos/tinyos-main/blob/master/tos/chips/rf230/RF230DriverHwAckP.nc#L247

This is buggy, that it can be called to uninitialized resource (you have only 50% to work), the initialization order of modules (SoftwareInit.init()) is undefined :-)

https://github.com/tinyos/tinyos-main/issues/134

If this is your issue, try simple fix:

https://www.mail-archive.com/tinyos-help%40millennium.berkeley.edu/msg40413.html

M.C>


If ResourceRequested.requested() is signaled to a
module that does not own the resource, i think that is a bug 

On Sun, Sep 14, 2014 at 3:32 PM, Eric Decker <cire...@gmail.com> wrote:


      On Sun, Sep 14, 2014 at 11:16 AM, Roadstar Runner 
<redstripe...@gmail.com> wrote:
            I have also noticed some strange behavior with 
ResourceDefaultOwner. If a module calls
            Resource.request() in  Boot.booted(), 
ResourceDefaultOwner.requested() is signaled before
            the resource is granted to the default owner


by default on power up, after initialization, the default owner owns the 
resource, by default.   It doesn't
actually get granted on the way up.
 
      [cleardot.gif]

On Sun, Sep 14, 2014 at 12:59 PM, Eric Decker <cire...@gmail.com> wrote:


      On Sun, Sep 14, 2014 at 7:28 AM, Roadstar Runner <redstripe...@gmail.com> 
wrote:
            But if thee is no default owner for the resource, then the system 
could be
            locked because module 2 will never get the resource. I was under the
            impression that if a call to Resouce.request() returns SUCCESS , 
then either
            granted or requested will have to be signaled so that the resource 
is
             actually shared.


It is my understanding that if Resource.request() returns SUCCESS than one is 
guaranteed that
.granted will eventually be signalled.   (Not either .granted or .requested).

.requested will only be delivered after a module owns a resource and another 
module requests the
resource.

      Also if module2 has the resource, releases it and immediately requests it 
again
      before module 1 is granted the resource...we will lock up the system


I have to verify this (currently working on it), but what currently happens 
(with FCFSArbiter)
is Module2 will be granted the resource again.   So the system doesn't lock up 
but the proper
behaviour doesn't occur.   Queue discipline isn't properly honored.


--
Eric B. Decker
Senior (over 50 :-) Researcher





--
Eric B. Decker
Senior (over 50 :-) Researcher



_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to