WindowsDesktop.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 25 Mar 2021 20:30:03 +0000
branchjv
changeset 25411 248600ba8fd9
parent 23107 40173e082cbc
permissions -rw-r--r--
Fix unlikely but possible race in `WeakValueDictionary` It may happen that value in `valueArray` could have been already collected by the GC but #clearDeadSlots have not yet been called. When this happened, `#at:ifAbsentPut:` returned tombstone rather than updating the dictionary with value from block. This commit fixes this by checking whether `valueArray` contain the tombstone and if so, clearing up the dead slots and restarting the operation. HTH.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13396
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     1
"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
23107
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18011
diff changeset
     3
 COPYRIGHT (c) 2009 Jan Vrany
13396
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     4
              All Rights Reserved
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     5
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     6
 This software is furnished under a license and may be used
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     7
 only in accordance with the terms of that license and with the
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
28d8777c4270 initial checkin
vrany
parents:
diff changeset
     9
 be provided or otherwise made available to, or used by, any
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    10
 other person.  No title to or ownership of the software is
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    11
 hereby transferred.
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    12
"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    13
"{ Package: 'stx:libbasic' }"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    14
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    15
AbstractDesktop subclass:#WindowsDesktop
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    16
	instanceVariableNames:''
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    17
	classVariableNames:''
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    18
	poolDictionaries:''
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    19
	category:'System-Desktop'
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    20
!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    21
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    22
!WindowsDesktop class methodsFor:'documentation'!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    23
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    24
copyright
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    25
"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    26
 COPYRIGHT (c) 2006 by eXept Software AG
23107
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18011
diff changeset
    27
 COPYRIGHT (c) 2009 Jan Vrany
13396
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    28
              All Rights Reserved
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    29
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    30
 This software is furnished under a license and may be used
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    35
 hereby transferred.
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    36
"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    37
! !
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    38
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    39
!WindowsDesktop class methodsFor:'accessing'!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    40
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    41
priority
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    42
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    43
    ^1
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    44
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    45
    "Modified: / 11-08-2009 / 16:40:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    46
! !
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    47
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    48
!WindowsDesktop class methodsFor:'testing'!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    49
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    50
isAvailable
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    51
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    52
    ^OperatingSystem isMSWINDOWSlike
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    53
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    54
    "Modified: / 11-08-2009 / 16:40:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    55
! !
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    56
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    57
!WindowsDesktop class methodsFor:'documentation'!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    58
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    59
version_CVS
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    60
    ^ '$Header: /cvs/stx/stx/libbasic/WindowsDesktop.st,v 1.1 2011-06-28 10:09:58 vrany Exp $'
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    61
!
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    62
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    63
version_SVN
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    64
    ^ ' Id: WindowsDesktop.st 10524 2010-05-20 13:35:23Z vranyj1  '
28d8777c4270 initial checkin
vrany
parents:
diff changeset
    65
! !