看板 PttCurrent 關於我們 聯絡資訊
現在的水球作法大概是, 1.(sender)把資料寫進對方的 shared-memory 內, 2.(sender)送 SIGUSR1過去 3.(receiver)進 SIGUSR1的 handler, 把資料從 shared-memory寫到 local space , 把資料 show 出來, 再 return 回原來的程式 我建議可以改成這樣: 假定現在有一個叫 waterd 的 daemon , 裡面有所有 connection 的 fd . 1.(sender)把水球訊息寫一個 message queue到 waterd 2.(waterd)查出對方的 connection fd, 直接將畫面寫到對方的 fd 上 (於是 receiver 的畫面就更新) 3.(waterd)寫一份到 receiver 的 shared-memory 4.(receiver)直到按下 Ctrl-R 或要丟水球的時候, 才把資料從 shm中拿回 local space 如此可以省掉大量的 SIGUSR1以及進該 handler的時間~ :Q -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.112.30.143