mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
don't abort if pthread_kill fails in MySystem::visit
This commit is contained in:
parent
29858a5299
commit
08e9a99cb5
@ -6254,7 +6254,7 @@ class MyProcessor: public Processor {
|
|||||||
collect(t, Heap::MinorCollection);
|
collect(t, Heap::MinorCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
return visitor.trace;
|
return visitor.trace ? visitor.trace : makeArray(t, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void initialize(BootImage* image, uint8_t* code, unsigned capacity) {
|
virtual void initialize(BootImage* image, uint8_t* code, unsigned capacity) {
|
||||||
|
@ -628,13 +628,16 @@ class MySystem: public System {
|
|||||||
visitTarget = target;
|
visitTarget = target;
|
||||||
|
|
||||||
int rv = pthread_kill(target->thread, VisitSignal);
|
int rv = pthread_kill(target->thread, VisitSignal);
|
||||||
expect(this, rv == 0);
|
|
||||||
|
|
||||||
while (visitTarget) visitLock->wait(t, 0);
|
if (rv == 0) {
|
||||||
|
while (visitTarget) visitLock->wait(t, 0);
|
||||||
|
|
||||||
threadVisitor = 0;
|
threadVisitor = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual uint64_t call(void* function, uintptr_t* arguments, uint8_t* types,
|
virtual uint64_t call(void* function, uintptr_t* arguments, uint8_t* types,
|
||||||
|
Loading…
Reference in New Issue
Block a user