ok = 0;
switch(state) {
case ZAP_CHANNEL_STATE_DOWN:
+ case ZAP_CHANNEL_STATE_BUSY:
ok = 1;
break;
default:
zap_status_t zap_channel_open_chan(zap_channel_t *zchan)
{
zap_status_t status = ZAP_FAIL;
-
- if ((status = zap_mutex_trylock(zchan->mutex)) != ZAP_SUCCESS) {
+
+ assert(zchan != NULL);
+
+ if (!zap_test_flag(zchan, ZAP_CHANNEL_READY) || (status = zap_mutex_trylock(zchan->mutex)) != ZAP_SUCCESS) {
return status;
}
check = &globals.spans[span_id].channels[chan_id];
- if ((status = zap_mutex_trylock(check->mutex)) != ZAP_SUCCESS) {
+ if (!zap_test_flag(check, ZAP_CHANNEL_READY) || (status = zap_mutex_trylock(check->mutex)) != ZAP_SUCCESS) {
goto done;
}