Title: deque.popleft() not thread-safe
Type: Severity: major
Components: Library Versions: Jython 2.7
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: ajdavis, amak, fwierzbicki, zyasoft
Priority: normal Keywords:

Created on 2012-12-29.18:36:12 by ajdavis, last changed 2014-06-19.06:08:42 by zyasoft.

File name Uploaded Description Edit Remove ajdavis, 2012-12-29.18:36:11
msg7558 (view) Author: A. Jesse Jiryu Davis (ajdavis) Date: 2012-12-29.18:36:11
The deque docs say that "Deques support thread-safe, memory efficient appends and pops from either side of the deque", but deque.popleft() isn't thread-safe. Under some circumstances the attached script throws a NullPointerException:

Exception in thread Thread:Traceback (most recent call last):
  File "/Users/emptysquare/jython2.5.2/Lib/", line 179, in _Thread__bootstrap
  File "/Users/emptysquare/jython2.5.2/Lib/", line 170, in run
    self._target(*self._args, **self._kwargs)
  File "", line 9, in f
NullPointerException: java.lang.NullPointerException

... under others it simply throws "IndexError: pop from an empty deque". Either error is wrong and inconsistent with the docs and with CPython's behavior.
msg8721 (view) Author: Jim Baker (zyasoft) Date: 2014-06-19.06:08:42
Fixed as of
Date User Action Args
2014-06-19 06:08:42zyasoftsetstatus: open -> closed
resolution: fixed
messages: + msg8721
nosy: + zyasoft
2013-02-20 00:25:21fwierzbickisetpriority: normal
versions: + Jython 2.7, - 2.5.2, 2.7a2
2013-02-09 13:56:58amaksetnosy: + amak
2012-12-30 18:28:15fwierzbickisetnosy: + fwierzbicki
2012-12-29 18:36:21ajdavissetversions: + 2.7a2
2012-12-29 18:36:12ajdaviscreate