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

Created on 2012-12-29.18:36:12 by ajdavis, last changed 2013-02-20.00:25:21 by fwierzbicki.

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.
Date User Action Args
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