Hello Nandan,
Do you have another thread waiting on a "read" call? The ACM write will compete for mutex ownership indefinitely in order to access the device for write. In other words, it will not send the data until some data is received, in case where receive function currently owns the mutex.
Regards