2022-11-15 Fred Gleason <fredg@paravelsystems.com>

* Fixed a regression in rdcatchd(8) that caused conflicting record
	events to deadlock.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2022-11-15 12:06:29 -05:00
parent 2f1e57f3f4
commit c266b9a4f6
2 changed files with 17 additions and 1 deletions

View File

@@ -23672,3 +23672,6 @@
2022-11-14 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdcatchd(8) that caused conflicting play-out
events to deadlock.
2022-11-15 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdcatchd(8) that caused conflicting record
events to deadlock.

View File

@@ -573,11 +573,24 @@ void MainObject::engineData(int id)
return;
}
//
// Check for Record Deck Availability
//
if(catch_events[event].type()==RDRecording::Recording) {
if(catch_record_deck_status[catch_events[event].channel()-1]!=
RDDeck::Idle) {
rda->syslog(LOG_WARNING,"record deck R%d is busy for event %d, skipping",
catch_events[event].channel(),
catch_events[event].id());
WriteExitCode(event,RDRecording::DeviceBusy);
return;
}
}
//
// Check for Playout Deck Availability
//
if(catch_events[event].type()==RDRecording::Playout) {
rda->syslog(LOG_NOTICE,"checking channel: %d: %d",catch_events[event].channel(),catch_playout_deck_status[catch_events[event].channel()-129]);
if(catch_playout_deck_status[catch_events[event].channel()-129]!=
RDDeck::Idle) {
rda->syslog(LOG_WARNING,"playout deck P%d is busy for event %d, skipping",