| 
									 × [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。  | 
							
| 
									 EndAcceptTcpClientごとにスレッドが作成されるのかと思ったら、1スレッドしか作成できないらしい。何のための非同期なんだろう。。。1つ目のTcpClient作成後に、別の要求があっても2つ目のスレッドは作成されないで1つ目のTcpClientが終了するまでコールバックが呼ばれない。。。うむむ。
 
									Public Sub run() Dim socks As clsSocket() = New clsSocket(1) {} Dim waits As Threading.WaitHandle() = New Threading.WaitHandle(socks.Length - 1) {} Debug.Print(Threading.Thread.CurrentThread.ManagedThreadId) mServer.Start(socks.Length - 1) Do For i As Integer = 0 To socks.Length - 1 Dim wrkIdx As Integer = i If waits(wrkIdx) Is Nothing Then socks(wrkIdx) = New clsSocket(mIGetMessage) waits(wrkIdx) = mServer.BeginAcceptTcpClient(Sub(aISyncResult As IAsyncResult) Debug.Print(Threading.Thread.CurrentThread.ManagedThreadId) socks(wrkIdx).Begin(mServer.EndAcceptTcpClient(aISyncResult).GetStream()) End Sub, Nothing).AsyncWaitHandle End If Next waits(Threading.EventWaitHandle.WaitAny(waits)) = Nothing Loop End Sub PR  | 
							
| 
									 CentOSのアップグレードをかけたらIMEがchromeで効かなくなった・・・ 
									
 export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus 修正後 export GTK_IM_MODULE=xim export XMODIFIERS=@im=ibus export QT_IM_MODULE=xim解決したなりー。 なんかこの記載方法を昔してダメだったような気がするのでバグが直った感じかな。  | 
							
| 
									
									 | 
							
									$gv=9686
$funcs = @(
{
	echo "GlobalOnRead"
	$lv = $gv
	Write-Output $lv
}
,
{
	echo "CopyOnWrite"
	$lv = $gv
	$lv += 5050 - 9686
	Write-Output $lv
}
,
{
	echo "LocalOnWrite"
	$lv = $gv
	$gv += 5050 - 9686
	Write-Output ([String]$lv + ":" + $gv)
}
)
for($i = 0; $i -lt $funcs.length; $i++)
{
	Write-Output $funcs[$i].invoke()
}
結果
GlobalOnRead 9686 CopyOnWrite 5050 LocalOnWrite 9686:-4636 PowerShellでのグローバル変数は参照のみ。 変数の値を書き込むやいなや、ローカル変数扱いとなる。 Pythonだとブロック内に書き込むロジックがある時点で ブロックの最初が参照だったらコンパイルエラーになった気がする。 もちろん、配列メンバへの更新はグローバル変数扱い!  | 
							
| 
									 Expectを使えるか試してみようと「sed」と対話するスクリプトを作った結果・・・  
									●スクリプト #!/bin/expect -f
 
spawn sed -e "s/Q/A/g"
set timeout 1
 
send -raw "Q\n"
expect {
        -re "A" {puts "OK!"}
}
send -raw "Q\n"
expect {
        -re "Q" {puts "No Change!"}
}
 
send -raw "Q\n"
expect {
        -re "B" {puts "Wrong!"}
}
 
close
 
exit
●結果spawn sed -e s/Q/A/g Q A OK! Q No Change! A Q Aなぜに、sendした文字も拾ってるんだーーーー。orz  | 
							
| 
								
																 忍者ブログ [PR]  | 
						


