waiter.Waiter API upgrade breaks nested Actor/Invoker calls #1560

Open
opened 2025-12-28 17:16:51 +00:00 by sami · 0 comments
Owner

Originally created by @AnnaShaleva on GitHub (Sep 22, 2025).

Current Behavior

#3959 broke waiter.Waiter chained calls wrapped into methods like actor.SendRun: https://github.com/nspcc-dev/neofs-node/pull/3589#discussion_r2362716630.

Expected Behavior

Chained calls is a nice feature that simplifies user's code, so it's good to preserve chained calls. At the same time, waiter needs an ability to work with externally-provided cancellation context, so removing context argument is not an option.

Possible Solution

Removing chained calls is not an option. Removing context is also not an option.

Context may be provided via separate call, something like waiter.SetContext(ctx).Wait(actor.SendRun()). Another option is to bound context to waiter in constructor.

Context

Ref. https://github.com/nspcc-dev/neofs-node/pull/3589#discussion_r2364197434, related to https://github.com/nspcc-dev/neo-go/issues/3026.

Originally created by @AnnaShaleva on GitHub (Sep 22, 2025). ## Current Behavior #3959 broke `waiter.Waiter` chained calls wrapped into methods like `actor.SendRun`: https://github.com/nspcc-dev/neofs-node/pull/3589#discussion_r2362716630. ## Expected Behavior Chained calls is a nice feature that simplifies user's code, so it's good to preserve chained calls. At the same time, `waiter` needs an ability to work with externally-provided cancellation context, so removing context argument is not an option. ## Possible Solution Removing chained calls is not an option. Removing context is also not an option. Context may be provided via separate call, something like `waiter.SetContext(ctx).Wait(actor.SendRun())`. Another option is to bound context to waiter in constructor. ## Context Ref. https://github.com/nspcc-dev/neofs-node/pull/3589#discussion_r2364197434, related to https://github.com/nspcc-dev/neo-go/issues/3026.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nspcc-dev/neo-go#1560
No description provided.