Hi, I'm a student working with Andreas. This isn't only a problem of buffered output as you supposed. The output of the following code is mixed up the same way as the prior one. Indeed, it seems a "a little less" mixed up, but is still not working as expected.
public class Clockbug { public static def main(args: Array[String]) { val runs : Int = 10; val output : ArrayList[String] = new ArrayList[String](); val outputRef = GlobalRef[ArrayList[String]](output); clocked finish { for (place in Place.places()) at (place) { clocked async { for (var i : Int = 0; i < runs; i++) { val message1 = "Phase A at place " + here.id + " in run:" + i; at(outputRef) { atomic { outputRef().add(message1); } } Clock.advanceAll(); val message2 = "Phase B at place " + here.id + " in run:" + i; at(outputRef) { atomic { outputRef().add(message2); } } Clock.advanceAll(); } }}} for(s in output) { Console.OUT.println(s); } } } This code produces output such as: Phase B at place 2 in run:8 Phase A at place 3 in run:8 Phase B at place 0 in run:8 Phase A at place 1 in run:8 Phase A at place 2 in run:9 Phase B at place 3 in run:8 Phase A at place 0 in run:9 Phase B at place 1 in run:8 Phase B at place 2 in run:9 Phase A at place 3 in run:9 Phase B at place 0 in run:9 Phase A at place 1 in run:9 Phase B at place 3 in run:9 Phase B at place 1 in run:9 As you can see, the runs are still mixed up, let alone the phases. It seems to get worse with every iterations of the loop. It would be great if you could help. Dominic ________________________________________ Von: Olivier Tardieu [tard...@us.ibm.com] Gesendet: Freitag, 4. Mai 2012 21:02 An: Mailing list for users of the X10 programming language Betreff: Re: [X10-users] Clock bug? Hi, I think you are expecting outputs from distinct places to show in order. There is no such guarantee. You code guarantees that Console.OUT.println(...) in phase A at place 1 will happen before Console.OUT.printn(...) in phase B at place 0. But the messages may appear on the console in a different order (as they take time to travel across places). Olivier [cid:1__=0abbf367dff501ab8f9e8a93df...@us.ibm.com]Andreas Zwinkau ---05/04/2012 03:07:54 AM--------BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 From: Andreas Zwinkau <zwin...@kit.edu> To: x10-users@lists.sourceforge.net, Date: 05/04/2012 03:07 AM Subject: [X10-users] Clock bug? ________________________________ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 The following program is not synchronized as I expect it to be: public class Clockbug { public static def main(args: Array[String]) { val runs = 7; clocked finish { for (place in Place.places()) at (place) { clocked async { for (var i : Int = 0; i < runs; i++) { atomic Console.OUT.println("Run "+i+" phase A at place " + here.id); Clock.advanceAll(); atomic Console.OUT.println("Run "+i+" phase B at place " + here.id); Clock.advanceAll(); }}}}}} For each iteration i, the "phase A" output should appear before the "phase B" output. However, I also observe output like this: $ X10_NPLACES=4 ./a.out Run 0 phase A at place 2 Run 0 phase A at place 0 Run 0 phase A at place 1 Run 0 phase A at place 3 Run 0 phase B at place 0 Run 0 phase B at place 2 Run 0 phase B at place 1 Run 1 phase A at place 2 Run 0 phase B at place 3 Run 1 phase A at place 0 Run 1 phase A at place 1 Run 1 phase A at place 3 Run 1 phase B at place 2 Run 1 phase B at place 0 Run 1 phase B at place 1 Run 1 phase B at place 3 Apparently, the iterations get mixed up. Is that a bug in Clock? - -- Andreas Zwinkau Karlsruhe Institute of Technology (KIT) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Prof. Snelting Adenauerring 20a 76131 Karlsruhe Phone: +49 721 608 48351 Fax: +49 721 608 48457 Email: zwin...@kit.edu Web: http://pp.info.uni-karlsruhe.de/person.php?id=107 KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJPo4AhAAoJEKm3M8a3pi2iP34H/2/qS2QQ7Xdy3iF1PZVNZ83/ yMKg8K+YZARSiGz+EvN/MWAyHMh10qChWfcoZwhzgTrf9xvGeeN/b2eSCYv0ArcM k6WdZ+IlWTz1qSZeuLAy5PdmNHpqSb2MO7D7YPK3G+eisq4YOg2KK0gqZsSRvIeI xaDhTUNEXAX6TwI4cevcDTRrKaFYIbFUdiEslUBBKAlJ33/pjCI0C8UKzGXYXeAQ IK2CdJIgOsjGuSIHZUFi7iil8TgT3VC+TaBhFTwdpHifuWDHQKsTnL17E+bQhUpr XG9uD3SOE1nC0J1saJNhYmdTOpX3Lh/LfR244dVnjvqEQeayHhlxszf7IwcFdyc= =qufe -----END PGP SIGNATURE----- ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ X10-users mailing list X10-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/x10-users ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ X10-users mailing list X10-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/x10-users