今回も、Firefox拡張機能開発のお話。 Firefox3からThread関係のインターフェースが追加されています。 ネットワークの通信処理をかいているのですが、nsIAsyncInputStreamやnsIAsyncOPenStreamの、AsyncWait()の使い方がわからないので、ベーシックな感じでThreadで処理しています。 # AsyncWait()を使う場合, nsIBinaryInputStreamって使っていいのかな。 基本的なThreadの処理はMDCにあるサンプルコードを見ればわかります。 しかし、処理ごとにThreadを作っていると、Thread管理するためのコードが必要になったり、Thread数が爆発してしまったりします。 さて、XULPlanetのXPCOMの項目にThread関係があります。 nsIThread nsIThreadEventFilter n
ローカルファイルに書いてたメモをこっちにはって捨てる。 ソケット通信はすべてgScoketThreadというスレッドで行われる。 ただし、コネクションを作るのはUIスレッド。 nsHttpChannel::AsyncOpen を呼び出すことで始まる。 呼び出すと nsHttpChannel::Connect が呼ばれる。 ~/mozilla/netwerk/protocol/http/src/nsHttpChannel.cpp nsHttpChannel::Connect(PRBool firstTime) { ... snip .... // hit the net... rv = SetupTransaction(); if (NS_FAILED(rv)) return rv; rv = gHttpHandler->InitiateTransaction(mTransaction, m
chaika のスレッド表示の負荷をおさえる実験で使っている方法で、元ソースは Mozmill 。 副作用がありそうでまだ試験中だけど、Piro さんが JavaScriptでsleepしたい、を実現する方法(require JavaScript 1.7) で似たようなことをしていたのでメモとして紹介。 function sleep(aWait) { var timer = { timeup: false }; var interval = window.setInterval(function(){ timer.timeup = true; }, aWait); var thread = Cc["@mozilla.org/thread-manager;1"].getService().mainThread; while(!timer.timeup){ thread.processNext
キーボードを、持ち歩く。 久しぶりに、スマホ用のキーボードを使ってブログを書いている。 いくつかキーが壊れてしまっているので買い替えないといけないのだが、壊れるくらいには使い込んでいたんだなと思った。 当時は、今のようにPCを普段から持ち歩くことが少なかったので、出先でもブログ…
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く