Hi Torsten, Hi Esteban,
On Aug 28, 2017, at 9:17 AM, Torsten Bergmann <astares@gmx.de> wrote:
As some of you are aware of Spur added memory pinning and in Pharo 6.1 (#60510) as well as Pharo 7 we currently have
Object>>pin Object>>unpin Object>>isPinned
and also Object>>setPinned:.
Object pinning is explained by Eliot here [1].
I would propose two changes (at least for Pharo but ideally also for Squeak):
1. IMHO #setPinned: should be moved to a private protocol 2. Provide a #pinDuring: aBlock method like:
pinDuring: aBlock [ self pin. aBlock value ] ensure: [ self unpin ]
so we can ensure that a pinned object is unpinned after an operation.
What do you think?
Also I wonder why FFICallbackTests>>#testCqsortWithByteArray is sending #pin but not #unpin afterwards. Maybe that is the reason why there is a flag in this method that it is crashing on Windows.
This test is news to me. Neither the test nor the class is in FFI-Tests at source.squeak.org, which is where the package lives. Why is it missing?
Bye T.
[1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-August/195129.ht...