failure with try_send and semaphore... need to find a better way