[Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/tosthreads/system BlockingAMSenderImplP.nc, 1.2, 1.3

Chieh-Jan Mike Liang liang_mike at users.sourceforge.net
Mon Feb 9 19:36:10 PST 2009


Update of /cvsroot/tinyos/tinyos-2.x/tos/lib/tosthreads/system
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv4935/tos/lib/tosthreads/system

Modified Files:
	BlockingAMSenderImplP.nc 
Log Message:
Check the AM ID to make sure the sendDone event should be signaled (it could be for the TinyOS services)


Index: BlockingAMSenderImplP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/lib/tosthreads/system/BlockingAMSenderImplP.nc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** BlockingAMSenderImplP.nc	26 Nov 2008 19:25:56 -0000	1.2
--- BlockingAMSenderImplP.nc	10 Feb 2009 03:36:07 -0000	1.3
***************
*** 32,35 ****
--- 32,36 ----
  /**
   * @author Kevin Klues (klueska at cs.stanford.edu)
+  * @author Chieh-Jan Mike Liang <cliang4 at cs.jhu.edu>
   */
  
***************
*** 56,60 ****
    } params_t;
    
!   syscall_t* send_call;
    mutex_t my_mutex;
    
--- 57,61 ----
    } params_t;
    
!   syscall_t* send_call = NULL;
    mutex_t my_mutex;
    
***************
*** 75,85 ****
      params_t p;
      call Mutex.lock(&my_mutex);
!       send_call = &s;
!     
!       p.addr = addr;
!       p.msg = msg;
!       p.len = len;
!     
!       call SystemCall.start(&sendTask, &s, am_id, &p);
      
      atomic {
--- 76,91 ----
      params_t p;
      call Mutex.lock(&my_mutex);
!       if (send_call == NULL) {
!         send_call = &s;
!       
!         p.addr = addr;
!         p.msg = msg;
!         p.len = len;
!       
!         call SystemCall.start(&sendTask, &s, am_id, &p);
!         send_call = NULL;
!       } else {
!         p.error = EBUSY;
!       }
      
      atomic {
***************
*** 97,104 ****
    
    event void AMSend.sendDone[am_id_t am_id](message_t* m, error_t error) {
!     params_t* p;
!     p = send_call->params;
!     p->error = error;
!     call SystemCall.finish(send_call);
    }
    default command error_t AMSend.send[am_id_t id](am_addr_t addr, message_t* msg, uint8_t len) {
--- 103,114 ----
    
    event void AMSend.sendDone[am_id_t am_id](message_t* m, error_t error) {
!     if (send_call != NULL) {
!       if (send_call->id == am_id) {
!         params_t* p;
!         p = send_call->params;
!         p->error = error;
!         call SystemCall.finish(send_call);
!       }
!     }
    }
    default command error_t AMSend.send[am_id_t id](am_addr_t addr, message_t* msg, uint8_t len) {



More information about the Tinyos-2-commits mailing list