bool stop(bool wait=true) { if(!isrunning)return true; keeprunning=false; s_newdata.thaw(); if(!wait) return (!isrunning); struct timeval sleep; while(isrunning) { sleep.tv_sec=0; sleep.tv_usec=10; select(0,0,0,0,&sleep); s_newdata.thaw(); } return true; }