問題タブ [libdispatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
5296 参照

windows - Grand Central Dispatch (`libdispatch`) が Windows で利用可能になる可能性はありますか?

私はマルチスレッドを検討していますが、GCD は、 and を使用して手動でソリューションを作成するよりもはるかに優れたオプションのようです。しかし、ほとんどの新しい POSIX 互換システムに取り組んでいるか、間もなく取り組むように見えますが、Windows についてはどうですか? Windows に移植される可能性はどのくらいですか? それを妨げている障壁は何ですか?pthread.hpthreads-win32libdispatchlibdispatch

結局のところ、そのポーテージを実行するにはどうすればよいでしょうか?

編集:議論を始めるために、私がすでに知っているいくつかのこと:

  • Windows でコンパイルできるブロック互換のコンパイラが必要ですよね?PLBlocks はそれを処理しますか?
  • LLVMブロックのランタイムを使用できますか?
  • pthread.h移植性のために、ユーザー空間のすべての依存関係libdispatchを APR 呼び出しに置き換えることはできませんか? または、代わりに…を使用しpthreads-win32てください…</li>

編集 1: Windows では利用できない にlibdispatch(何らかの形で) 依存しているため、これは完全に完全に不可能であると聞いています... これが本当かどうか知っている人はいますか?kqueue

0 投票する
1 に答える
1340 参照

macos - Grand Central Dispatchはいくつのスレッドを作成する必要がありますか?

GCDは、CPUを最大限に活用するために必要な数のスレッドのみを作成することを理解しています。約30のバックグラウンドタスクを起動するために使用するコードdispatch_asyncでは、ActivityMonitorでスレッドの数が約30増加しているのがわかります。デュアルコアPCしかないので、私はそれを予期していなかったでしょう。

私は何かを誤解していると確信しています。誰かが何が起こっているのか教えてもらえますか?

0 投票する
4 に答える
7243 参照

linux - ブロックと libdispatch は Linux で利用できますか?

グランド セントラル ディスパッチを試してみたいのですが、開発する必要があるのは Ubuntu ワークステーションだけです。libdispatch や c/obj-c などへのブロック拡張は Linux で利用できますか? もしそうなら、どうすれば入手できますか?

0 投票する
1 に答える
2812 参照

grand-central-dispatch - dispatch_semaphore_wait は FIFO ではありませんか?

ドキュメントにdispatch_semaphore_waitは、「シグナルを FIFO 順で待機する」と記載されています。しかし、この例ではそうではないようです-誰かが説明してもらえますか?

例:

期待される出力:

実際の出力 (一例):

編集:シリアルキューではなく、q1とq2がグローバルキューに設定されている場合の実際の出力:

(完全に機能することもありますが、このように奇妙なこともあります。)

0 投票する
1 に答える
146 参照

macos - libdispatchでGLUTを使用する方法は?

GLUTとlibdispatchの両方に独自のイベント処理ループが あり、それぞれ:glutMainLoop();とを返すことのない関数で呼び出されます。dispatch_main();

私はもう試した:

...ウィンドウは表示されますが、で指定された関数を最初に呼び出した後、イベントに応答したり、再描画したりすることはありませんglutDisplayFunc()

GLUTとlibdispatchをうまく連携させるにはどうすればよいですか?

0 投票する
1 に答える
878 参照

macos - GLFW を使用して libdispatch ブロック内のイベントをポーリングする方法は?

libdispatchでGLUTを使用する方法への回答をフォローアップしますか? 、代わりに GLFW を使用しています —</p>

次のコードは、ウィンドウをセットアップし、タイマーをセットアップしてイベントをポーリングし、時間の経過とともにレンダリングの更新をキューに入れます。

アニメーションは期待どおりに更新されますが、ウィンドウ フレームは描画されず、ウィンドウはイベントに応答しません。

0 投票する
1 に答える
709 参照

ios - dispatch_queue_t dispatch_get_local_queue dispatch_queue_create EXC BAD ACCESS を処理するには?

次のコードがあります

行 dispatch_queue_set_specific でシグナル EXC BAD ACCESS を受信した後。これをどのように処理しますか?iPhone 5.0シミュレーターではすべて正常に動作します。しかし、iPhone 4.3 シミュレーターと iOS 4.2 の iPad ではクラッシュします。BlackRaccoon プロジェクトの一部です。私の後

0 投票する
1 に答える
763 参照

python - Sage/Python の fork 後の SIGILL

Sageでいくつかの計算を行っています。で遊んでいforkます。基本的に次のような非常に単純なテストケースがあります。

(_fork_test_func()いくつかの行列計算については、以下を参照してください。)

そして、私は得ています:

この(不完全な)バックトレースでは:

の後に何か特別なことをする必要がありforkますか? Sageのデコレータを調べたところ、fork基本的に同じように見えます。

クラッシュはfork、Sage 自体のデコレータでも発生します。別のテスト ケース:


さらに単純なテスト ケース:

少し異なるクラッシュが発生します。

バックトレースあり:

これについても同じことが起こります:

-- ただし、以前に他の行列計算を使用したことがある場合のみ。


このテスト ケースは、新しい Sage セッションでも機能します。


Sage 5.8 の MacOSX 64bit 用のバイナリをダウンロードしました。

(asagemath.org hereにも質問したことに注意してください。)

0 投票する
1 に答える
634 参照

c - Ubuntu libdispatch

GCD (Grand Central Dispatch) を使用するプログラムを OSX から Ubuntu 11.10 に移植しようとしています。libdispatch をインストールしましたが、次のエラーが発生し続けます。

奇妙なことに、dispatch_main() は、インクルードするヘッダー ファイルで宣言されており、そのヘッダー ファイルで宣言されている他の関数を呼び出すと、コンパイラはそれらを認識します。見ることができないのはdispatch_main()だけであり、dispatch_main(2)を呼び出すと、引数が多すぎると言われるので、コンパイラーがヘッダーを見ることができることがわかります。

以前は未定義の参照エラーで機能していたので、コンパイルとリンクのステップを分離してみました(clang -c ...)が、ここでは何もしていないようです...

誰か提案はありますか?私はこれにかなり困惑しています...

0 投票する
2 に答える
1430 参照

ios - ブロックなしのグランド セントラル ディスパッチ

ブロックなしでGCDを使用することは可能ですか? mikeash が彼の投稿で述べているように、_f バリアントを使用して GCD を使用する方法はありますか。私は周りを検索しましたが、どちらの側にも証拠はありません。可能か不可能か。

実行可能な場合は、例を挙げてください。

/セルビン