From 6fb720e0ea31fe84a1ff579ead9b8814940736e1 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 26 Dec 2022 18:59:33 +0300 Subject: [PATCH] files: rpcstore context listen --- client/filestorage/rpcstore/client.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/client/filestorage/rpcstore/client.go b/client/filestorage/rpcstore/client.go index 76776ee5..097ef0b5 100644 --- a/client/filestorage/rpcstore/client.go +++ b/client/filestorage/rpcstore/client.go @@ -91,7 +91,11 @@ func (c *client) opLoop(ctx context.Context) { } if err != nil { t.err = err - t.ready <- t + select { + case t.ready <- t: + case <-t.ctx.Done(): + case <-ctx.Done(): + } } } } @@ -107,7 +111,13 @@ func (c *client) delete(ctx context.Context, t *task) (err error) { }); err != nil { return rpcerr.Unwrap(err) } - t.ready <- t + select { + case t.ready <- t: + case <-t.ctx.Done(): + return t.ctx.Err() + case <-ctx.Done(): + return ctx.Err() + } c.stat.UpdateLastUsage() return } @@ -128,6 +138,8 @@ func (c *client) put(ctx context.Context, t *task) (err error) { log.Debug("put cid", zap.String("cid", t.cid.String())) select { case t.ready <- t: + case <-t.ctx.Done(): + return t.ctx.Err() case <-ctx.Done(): return ctx.Err() }