通过官方提供的SessionsManager进行session管理,使同一个space下的线程共享sessionsManager,今天在测试的时候偶发性的发现,拿出了一个available为false的sessionWrapper,报了’The session was released, could not use again‘的问题。
对此有几点疑问:
1.初步定位问题在returnSessionWrapper的时候,设置了某个可用index下的sessionWrapper为不可用,但是官方代码中会在这个位置复用session再创建一个新的sessionWrapper,应该不会出现这个问题…
于是考虑是并发的问题,但是manager是线程安全的…因此原因还不确定…
2.SessionsManager在return的时候会保证the old SessionWrapper couldn’t use again.这一点的目的是什么?