You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 1887 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
Soit le code source suivant:
##################################################
let send fd mes =
let m=(String.sub mes 0 8) in
Unix.send fd m 0 8 []
(* chaque client qui se connecte recoit dix messages
successifs *)
let loop_client (fd,addr)=
let i = ref 0 in
while (!i<10) do
Thread.delay 1.;
send fd ("message"^(string_of_int !i));
i:=!i+1
done
let start port_num =
let sock = Unix.socket Unix.PF_INET Unix.SOCK_STREAM
0 in
let sock_addr =
Unix.ADDR_INET(Unix.inet_addr_any, port_num) in
(
Unix.bind sock sock_addr ;
Unix.listen sock 12;
while true do
let (service_sock, client_sock_addr) =
Unix.accept sock in
Thread.create loop_client
(service_sock,client_sock_addr)
done
)
let _=
start 3500 ;
##################################################
J'utilise Ocaml 3.06 sur Mac OSX, freeBSD, une
Mandrake (un peu périmée) linux.
Je compile ce code avec ocamlc sur ces OS, et le teste
avec telnet.
Le comportement que j'en attend est que le client
telnet recoive successivement 10 messages du serveur
mais ça ne se produit que sous freeBSD. Avec les
autres OS, le client telnet ne recoit rien.
Ayant connaissance d'un ancien problème de
compatibilité des appels systèmes Unix avec les
thread, j'ai essayé en utilisant la desormais inutile
bibliothèque Threadunix évidemment sans succes.
J'ai egalement essaye en remplacant Unix.send par
Unix.write, et de forcer le flush sur le descripteur
en utilisant un canal, sans succes.
Je suis à court d'idées, et à court d'informations sur
l'implémentation des threads pour comprendre cette
différence de comportement.
Si jamais il ne s'agit pas d'un bug ou puis-je trouver
les informations nécessaires pour faire fonctionner ce
type de code comme je l'attend sous mac OSX?
J'utilise Ocaml 3.06 sur Mac OSX, freeBSD, une
Mandrake (un peu périmée) linux.
Je compile ce code avec ocamlc sur ces OS, et le teste
avec telnet.
Le comportement que j'en attend est que le client
telnet recoive successivement 10 messages du serveur
mais ça ne se produit que sous freeBSD.
J'ai teste en 3.07 sur MacOS X 10.2.8, et ca marche aussi.
Original bug ID: 1887
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Soit le code source suivant:
##################################################
let send fd mes =
let m=(String.sub mes 0 8) in
Unix.send fd m 0 8 []
(* chaque client qui se connecte recoit dix messages
successifs *)
let loop_client (fd,addr)=
let i = ref 0 in
while (!i<10) do
Thread.delay 1.;
send fd ("message"^(string_of_int !i));
i:=!i+1
done
let start port_num =
let sock = Unix.socket Unix.PF_INET Unix.SOCK_STREAM
0 in
let sock_addr =
Unix.ADDR_INET(Unix.inet_addr_any, port_num) in
(
Unix.bind sock sock_addr ;
Unix.listen sock 12;
Unix.accept sock in
Thread.create loop_client
(service_sock,client_sock_addr)
done
)
let _=
start 3500 ;
##################################################
J'utilise Ocaml 3.06 sur Mac OSX, freeBSD, une
Mandrake (un peu périmée) linux.
Je compile ce code avec ocamlc sur ces OS, et le teste
avec telnet.
Le comportement que j'en attend est que le client
telnet recoive successivement 10 messages du serveur
mais ça ne se produit que sous freeBSD. Avec les
autres OS, le client telnet ne recoit rien.
Ayant connaissance d'un ancien problème de
compatibilité des appels systèmes Unix avec les
thread, j'ai essayé en utilisant la desormais inutile
bibliothèque Threadunix évidemment sans succes.
J'ai egalement essaye en remplacant Unix.send par
Unix.write, et de forcer le flush sur le descripteur
en utilisant un canal, sans succes.
Je suis à court d'idées, et à court d'informations sur
l'implémentation des threads pour comprendre cette
différence de comportement.
Si jamais il ne s'agit pas d'un bug ou puis-je trouver
les informations nécessaires pour faire fonctionner ce
type de code comme je l'attend sous mac OSX?
Cordialement,
Anne-Gwenn Bosser
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
The text was updated successfully, but these errors were encountered: