From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA16462 for caml-red; Thu, 9 Nov 2000 19:10:14 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id HAA03337 for ; Thu, 9 Nov 2000 07:38:27 +0100 (MET) Received: from buffalo.ens-lyon.fr (buffalo.ens-lyon.fr [140.77.1.8]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id eA96cQH24584 for ; Thu, 9 Nov 2000 07:38:26 +0100 (MET) Received: from babar.ens-lyon.fr (babar [140.77.191.44]) by buffalo.ens-lyon.fr (8.9.1a/8.9.1) with ESMTP id HAA22269 for ; Thu, 9 Nov 2000 07:38:26 +0100 (MET) From: Laure Danthony Received: (from ldanthon@localhost) by babar.ens-lyon.fr (8.9.1a/8.9.1) id HAA13067 for caml-list@inria.fr; Thu, 9 Nov 2000 07:38:26 +0100 (MET) Date: Thu, 9 Nov 2000 07:38:26 +0100 (MET) Message-Id: <200011090638.HAA13067@babar.ens-lyon.fr> To: caml-list@inria.fr Subject: Unix.sleep et bibliothèque graphique Sender: weis@pauillac.inria.fr suite à quelques essais infructeux et de discussions, voici un résumé du pb : il s'agit de mettre des pauses au milieu de programmes graphiques qui s'éxécutent trop vite (*mail de Luc Bougé*) let n = ref 0 in while (not (key_pressed())) do (lineto !n !n; n := !n + 1) done;; Ca marche, mais il faut que la fenetre graphique soit activee (par exemple en pointant dessus). J'ai fait quelques essais avec sleep. Je produis d'abord un toplevel par## ocamlmktop -o myocaml graphics.cma unix.cma 1) Le programme suivant marche bien. open Graphics;; open Unix;; while true do print_float (time()); print_newline(); Unix.sleep 2; done ;; 2) Par contre, si j'ajoute open_graph "", cela ne marche plus. open Graphics;; open Unix;; open_graph "";; while true do print_float (time()); print_newline(); Unix.sleep 2; done ;; et la precedente version ne marche plus non plus, meme si je tue la fenetre... Je pense qu'il y a un probleme de compatibilite entre les deux bibliotheques, car la gestion graphique utilise des threads, et il y a une autre fonction "thread" dans cette bibliotheque.open Graphics;; open Unix;; open_graph "";; while true do print_float (time()); print_newline(); Unix.sleep 2; done ;; et la precedente version ne marche plus non plus, meme si je tue la fenetre... Je pense qu'il y a un probleme de compatibilite entre les deux bibliotheques, car la gestion graphique utilise des threads, et il y a une autre fonction "thread" dans cette bibliotheque. (*fin*) qu'en pensez vous ? Avez vous une solution ? Merci de votre collaboration, Laure