aboutsummaryrefslogtreecommitdiff
path: root/src/linda.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/linda.cpp')
-rw-r--r--src/linda.cpp13
1 files changed, 0 insertions, 13 deletions
diff --git a/src/linda.cpp b/src/linda.cpp
index 1916629..4bd4553 100644
--- a/src/linda.cpp
+++ b/src/linda.cpp
@@ -344,9 +344,6 @@ LUAG_FUNC(linda_get)
344 if (_linda->cancelRequest == CancelRequest::None) { 344 if (_linda->cancelRequest == CancelRequest::None) {
345 Keeper* const _K{ _linda->whichKeeper() }; 345 Keeper* const _K{ _linda->whichKeeper() };
346 _pushed = keeper_call(_K->L, KEEPER_API(get), L_, _linda, 2); 346 _pushed = keeper_call(_K->L, KEEPER_API(get), L_, _linda, 2);
347 if (_pushed.value_or(0) > 0) {
348 keeper_toggle_nil_sentinels(L_, lua_gettop(L_) - _pushed.value(), LookupMode::FromKeeper);
349 }
350 } else { // linda is cancelled 347 } else { // linda is cancelled
351 // do nothing and return lanes.cancel_error 348 // do nothing and return lanes.cancel_error
352 kCancelError.pushKey(L_); 349 kCancelError.pushKey(L_);
@@ -492,10 +489,6 @@ LUAG_FUNC(linda_receive)
492 } 489 }
493 if (_pushed.value() > 0) { 490 if (_pushed.value() > 0) {
494 LUA_ASSERT(L_, _pushed.value() >= _expected_pushed_min && _pushed.value() <= _expected_pushed_max); 491 LUA_ASSERT(L_, _pushed.value() >= _expected_pushed_min && _pushed.value() <= _expected_pushed_max);
495 // replace sentinels with real nils
496 keeper_toggle_nil_sentinels(L_, lua_gettop(L_) - _pushed.value(), LookupMode::FromKeeper);
497 // To be done from within the 'K' locking area
498 //
499 _linda->readHappened.notify_all(); 492 _linda->readHappened.notify_all();
500 break; 493 break;
501 } 494 }
@@ -589,8 +582,6 @@ LUAG_FUNC(linda_send)
589 raise_luaL_error(L_, "no data to send"); 582 raise_luaL_error(L_, "no data to send");
590 } 583 }
591 584
592 // convert nils to some special non-nil sentinel in sent values
593 keeper_toggle_nil_sentinels(L_, _key_i + 1, LookupMode::ToKeeper);
594 bool _ret{ false }; 585 bool _ret{ false };
595 CancelRequest _cancel{ CancelRequest::None }; 586 CancelRequest _cancel{ CancelRequest::None };
596 KeeperCallResult _pushed; 587 KeeperCallResult _pushed;
@@ -701,10 +692,6 @@ LUAG_FUNC(linda_set)
701 Keeper* const _K{ _linda->whichKeeper() }; 692 Keeper* const _K{ _linda->whichKeeper() };
702 KeeperCallResult _pushed; 693 KeeperCallResult _pushed;
703 if (_linda->cancelRequest == CancelRequest::None) { 694 if (_linda->cancelRequest == CancelRequest::None) {
704 if (_has_value) {
705 // convert nils to some special non-nil sentinel in sent values
706 keeper_toggle_nil_sentinels(L_, 3, LookupMode::ToKeeper);
707 }
708 _pushed = keeper_call(_K->L, KEEPER_API(set), L_, _linda, 2); 695 _pushed = keeper_call(_K->L, KEEPER_API(set), L_, _linda, 2);
709 if (_pushed.has_value()) { // no error? 696 if (_pushed.has_value()) { // no error?
710 LUA_ASSERT(L_, _pushed.value() == 0 || _pushed.value() == 1); 697 LUA_ASSERT(L_, _pushed.value() == 0 || _pushed.value() == 1);