簡體   English   中英

與Smalltalk的Pharo差異

[英]Pharo differences with Smalltalk

我試圖用承諾/未來擴展Pharo。 我遇到了這個網站http://onsmalltalk.com/smalltalk-concurrency-playing-with-futures 它在Smalltalk實現期貨。 但是,當我將這部分代碼復制到Pharo上時,我遇到了一些錯誤:

value: aBlock 
promiseLock  := Semaphore new.

[ [ promiseValue := aBlock value ] 
    on: Error
    do: [ :err | promiseError  := err ]
    ensure: [ promiseLock signal ] ] forkBackground

這些是錯誤:

[forkBackground] Messages sent but not implemented 
[on:do:ensure:] Messages sent but not implemented

我認為Pharo與Smalltalk並沒有什么不同,或者該網站的解決方案是否可能與Smalltalk無關?

請嘗試以下方法:

promiseLock := Semaphore new.
[
  [[promiseValue := aBlock value] on: Error do: [:err | promiseError := err]]
    ensure: [promiseLock signal]] forkAt: Processor userBackgroundPriority

這樣做是為了ensure:promiseLock信號會收到一個signal即使Error蒙蔽的評價aBlock forkAt:的優先級是有爭議的,但我會從某處開始,並根據需要進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM