Made Server::postAll call safer, fixes #126
This commit is contained in:
+14
-4
@@ -124,9 +124,19 @@ static
|
|||||||
void
|
void
|
||||||
proxyScannerEventsToApplication(Scanner::IScanner& scanner, Wt::WServer& server)
|
proxyScannerEventsToApplication(Scanner::IScanner& scanner, Wt::WServer& server)
|
||||||
{
|
{
|
||||||
|
auto postAll {[](Wt::WServer& server, std::function<void()> cb)
|
||||||
|
{
|
||||||
|
server.postAll([cb = std::move(cb)]
|
||||||
|
{
|
||||||
|
// may be nullptr, see https://redmine.webtoolkit.eu/issues/8202
|
||||||
|
if (LmsApp)
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
}};
|
||||||
|
|
||||||
scanner.getEvents().scanStarted.connect([&]
|
scanner.getEvents().scanStarted.connect([&]
|
||||||
{
|
{
|
||||||
server.postAll([]
|
postAll(server, []
|
||||||
{
|
{
|
||||||
LmsApp->getScannerEvents().scanStarted.emit();
|
LmsApp->getScannerEvents().scanStarted.emit();
|
||||||
LmsApp->triggerUpdate();
|
LmsApp->triggerUpdate();
|
||||||
@@ -135,7 +145,7 @@ proxyScannerEventsToApplication(Scanner::IScanner& scanner, Wt::WServer& server)
|
|||||||
|
|
||||||
scanner.getEvents().scanComplete.connect([&] (const Scanner::ScanStats& stats)
|
scanner.getEvents().scanComplete.connect([&] (const Scanner::ScanStats& stats)
|
||||||
{
|
{
|
||||||
server.postAll([=]
|
postAll(server, [=]
|
||||||
{
|
{
|
||||||
LmsApp->getScannerEvents().scanComplete.emit(stats);
|
LmsApp->getScannerEvents().scanComplete.emit(stats);
|
||||||
LmsApp->triggerUpdate();
|
LmsApp->triggerUpdate();
|
||||||
@@ -144,7 +154,7 @@ proxyScannerEventsToApplication(Scanner::IScanner& scanner, Wt::WServer& server)
|
|||||||
|
|
||||||
scanner.getEvents().scanInProgress.connect([&] (const Scanner::ScanStepStats& stats)
|
scanner.getEvents().scanInProgress.connect([&] (const Scanner::ScanStepStats& stats)
|
||||||
{
|
{
|
||||||
server.postAll([=]
|
postAll(server, [=]
|
||||||
{
|
{
|
||||||
LmsApp->getScannerEvents().scanInProgress.emit(stats);
|
LmsApp->getScannerEvents().scanInProgress.emit(stats);
|
||||||
LmsApp->triggerUpdate();
|
LmsApp->triggerUpdate();
|
||||||
@@ -153,7 +163,7 @@ proxyScannerEventsToApplication(Scanner::IScanner& scanner, Wt::WServer& server)
|
|||||||
|
|
||||||
scanner.getEvents().scanScheduled.connect([&] (const Wt::WDateTime dateTime)
|
scanner.getEvents().scanScheduled.connect([&] (const Wt::WDateTime dateTime)
|
||||||
{
|
{
|
||||||
server.postAll([=]
|
postAll(server, [=]
|
||||||
{
|
{
|
||||||
LmsApp->getScannerEvents().scanScheduled.emit(dateTime);
|
LmsApp->getScannerEvents().scanScheduled.emit(dateTime);
|
||||||
LmsApp->triggerUpdate();
|
LmsApp->triggerUpdate();
|
||||||
|
|||||||
Reference in New Issue
Block a user