Skip to content

Commit 743dcc9

Browse files
committed
Add DiskSpaceChecker error handling
1 parent 4d0adcb commit 743dcc9

File tree

2 files changed

+46
-13
lines changed

2 files changed

+46
-13
lines changed

Source/Processors/RecordNode/DiskMonitor/DiskSpaceChecker.cpp

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,13 @@ void DiskSpaceChecker::update (float dataRate, int64 bytesFree, float timeLeft)
124124
if (listener != nullptr)
125125
{
126126
juce::MessageManager::callAsync ([listener, dataRate, bytesFree, timeLeft]()
127-
{ listener->update (dataRate, bytesFree, timeLeft); });
127+
{
128+
try {
129+
listener->update (dataRate, bytesFree, timeLeft);
130+
} catch (const std::exception& e) {
131+
LOGE("Error updating disk space listener: ", e.what());
132+
}
133+
});
128134
}
129135
}
130136
}
@@ -137,7 +143,13 @@ void DiskSpaceChecker::notifyDiskSpaceRemaining (float percentage)
137143
if (listener != nullptr)
138144
{
139145
juce::MessageManager::callAsync ([listener, percentage]()
140-
{ listener->updateDiskSpace (percentage); });
146+
{
147+
try {
148+
listener->updateDiskSpace (percentage);
149+
} catch (const std::exception& e) {
150+
LOGE("Error updating disk space percentage: ", e.what());
151+
}
152+
});
141153
}
142154
}
143155
}
@@ -150,7 +162,13 @@ void DiskSpaceChecker::notifyDirectoryInvalid()
150162
if (listener != nullptr)
151163
{
152164
juce::MessageManager::callAsync ([listener]()
153-
{ listener->directoryInvalid(); });
165+
{
166+
try {
167+
listener->directoryInvalid();
168+
} catch (const std::exception& e) {
169+
LOGE("Error notifying directory invalid: ", e.what());
170+
}
171+
});
154172
}
155173
}
156174
}
@@ -163,7 +181,13 @@ void DiskSpaceChecker::notifyLowDiskSpace()
163181
if (listener != nullptr)
164182
{
165183
juce::MessageManager::callAsync ([listener]()
166-
{ listener->lowDiskSpace(); });
184+
{
185+
try {
186+
listener->lowDiskSpace();
187+
} catch (const std::exception& e) {
188+
LOGE("Error notifying low disk space: ", e.what());
189+
}
190+
});
167191
}
168192
}
169193
}

Source/Utils/OpenEphysHttpServer.h

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -784,22 +784,31 @@ class OpenEphysHttpServer : juce::Thread
784784

785785
svr_->Get ("/api/processors/clear", [this] (const httplib::Request&, httplib::Response& res)
786786
{
787-
788787
String return_msg;
789788

790789
if (!CoreServices::getAcquisitionStatus())
791790
{
792791
std::promise<void> signalChainCleared;
793792
std::future<void> signalChainClearedFuture = signalChainCleared.get_future();
794793

795-
MessageManager::callAsync([this, &signalChainCleared] {
796-
graph_->clearSignalChain();
797-
signalChainCleared.set_value(); // Signal that loadSignalChain is finished
798-
});
799-
800-
// Wait for loadSignalChain to finish
801-
signalChainClearedFuture.wait();
802-
return_msg = "Signal chain cleared successfully.";
794+
try {
795+
MessageManager::callAsync([this, &signalChainCleared] {
796+
try {
797+
graph_->clearSignalChain();
798+
signalChainCleared.set_value();
799+
} catch (const std::exception& e) {
800+
LOGE("Error clearing signal chain: ", e.what());
801+
signalChainCleared.set_value();
802+
}
803+
});
804+
805+
// Wait for loadSignalChain to finish
806+
signalChainClearedFuture.wait();
807+
return_msg = "Signal chain cleared successfully.";
808+
} catch (const std::exception& e) {
809+
LOGE("Error in clear signal chain async call: ", e.what());
810+
return_msg = "Error clearing signal chain: " + String(e.what());
811+
}
803812
} else {
804813
return_msg = "Cannot clear signal chain while acquisition is active!";
805814
}

0 commit comments

Comments
 (0)