diff -r c74a73474cce -r bc000083297a drivers/unix/unix.c --- a/drivers/unix/unix.c Tue Apr 29 13:54:23 2008 +0200 +++ b/drivers/unix/unix.c Fri May 02 17:30:37 2008 +0200 @@ -190,12 +190,8 @@ canports[i].used = 1; canports[i].fd = fd0; canports[i].d = d; - + d->canHandle = (CAN_PORT)&canports[i]; CreateReceiveTask(&(canports[i]), &canports[i].receiveTask, &canReceiveLoop); - - EnterMutex(); - d->canHandle = (CAN_PORT)&canports[i]; - LeaveMutex(); return (CAN_PORT)&canports[i]; }else{ MSG("CanOpen : Cannot open board {busname='%s',baudrate='%s'}\n",board->busname, board->baudrate); @@ -211,12 +207,10 @@ int canClose(CO_Data * d) { UNS8 res; - - EnterMutex(); + ((CANPort*)d->canHandle)->used = 0; CANPort* tmp = (CANPort*)d->canHandle; d->canHandle = NULL; - LeaveMutex(); // close CAN port res = DLL_CALL(canClose)(tmp->fd);