Moontalk server and client (provided by many parties)
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
615B

  1. require check-gforth.4th
  2. require eventloop.4th
  3. require event-constants.4th
  4. require server.4th
  5. variable clcounter
  6. 0 clcounter !
  7. : handle-command-line? ( -- flag )
  8. clcounter @ 10 >= dup IF
  9. 0 clcounter !
  10. ELSE
  11. 1 clcounter +!
  12. THEN ;
  13. : custom-eventloop ( -- )
  14. BEGIN
  15. handle-command-line? IF
  16. 0 EVENT_COMMANDLINE events.enqueue
  17. THEN
  18. eventloop.has-events? IF
  19. eventloop.dispatch
  20. ELSE
  21. server-idle? IF
  22. 1 ms false server-idle!
  23. THEN
  24. 0 0 events.enqueue eventloop.dispatch
  25. THEN
  26. AGAIN ;
  27. : main ( -- ) ['] custom-eventloop catch close-server throw ;
  28. main