1804
|
1 |
{-# LANGUAGE CPP #-}
|
|
2 |
|
|
3 |
module Main where
|
|
4 |
|
|
5 |
import IO
|
|
6 |
import System.IO
|
|
7 |
import Control.Concurrent
|
|
8 |
import Network
|
|
9 |
import Control.Exception
|
|
10 |
import Control.Monad
|
|
11 |
import System.Random
|
|
12 |
|
|
13 |
#if !defined(mingw32_HOST_OS)
|
|
14 |
import System.Posix
|
|
15 |
#endif
|
|
16 |
|
2352
|
17 |
testing = Control.Exception.handle print $ do
|
1804
|
18 |
delay <- randomRIO (100::Int, 300)
|
|
19 |
threadDelay delay
|
|
20 |
sock <- connectTo "127.0.0.1" (PortNumber 46631)
|
|
21 |
hClose sock
|
|
22 |
|
|
23 |
forks i = do
|
|
24 |
delay <- randomRIO (50::Int, 190)
|
|
25 |
if i `mod` 10 == 0 then putStr (show i) else putStr "."
|
|
26 |
hFlush stdout
|
|
27 |
threadDelay delay
|
|
28 |
forkIO testing
|
|
29 |
forks (i + 1)
|
|
30 |
|
|
31 |
main = withSocketsDo $ do
|
|
32 |
#if !defined(mingw32_HOST_OS)
|
|
33 |
installHandler sigPIPE Ignore Nothing;
|
|
34 |
#endif
|
|
35 |
forks 1
|