} catch (...) {
exec->outputStream() << "unhandled exception\nevaluation failed\n";
}
- } else {
+ } else
+ {
exec->outputStream() << "timeouted\n";
DEBUG("timeouted, when waiting for context change");
}
{
if (fdForClosing) {
char c = 0;
- (void)write(*fdForClosing, &c, 1);
+ auto written = write(*fdForClosing, &c, 1);
+ DEBUG("write function returned %d", written);
ASSERT(thr.joinable());
DEBUG("waiting for thread...");
thr.join();
}
{
auto h = state->lock();
- Optional<size_t> lastEndOfLine = {};
auto finalPos = pos + static_cast<size_t>(count);
+ auto first = 0;
for (; pos < finalPos; ++pos) {
if (tmp[pos] == '\n') {
- auto first = lastEndOfLine ? (*lastEndOfLine + 1) : 0;
line.replace(0, line.size(), tmp.data() + first, pos - first);
ASSERT(line.size() == pos - first);
for (auto &f : h->listeners)
f(line);
- lastEndOfLine = pos;
+ first = (pos + 1);
}
}
- if (lastEndOfLine) {
- auto remainingSize = pos - (*lastEndOfLine + 1);
- memmove(tmp.data(), tmp.data() + *lastEndOfLine + 1, remainingSize);
+ if (first) {
+ auto remainingSize = pos - first;
+ memmove(tmp.data(), tmp.data() + first, remainingSize);
pos = remainingSize;
}
}