Hi,

on page 17 of the language description it reads as follows. "Yet programs 
using clocks are guaranteed not to suffer from deadlock."

It seems that I can preset a program that contradicts this statement. I have 
attached the program to this post. Admittedly, this is a mixture of finish, 
async and clocks, and there are remarks in the language definition about 
restrictions in using this combination. But I found these remarks confusing 
and would wish for a better explanation.

Anyway, my current X10DT and C++ backend let me get away with this program. So 
I could compile without errors and run on two MPI tasks and end up in what 
appears to be a plain deadlock. The output is as follows.

<map>
        <host name="sirius" slots="1" max_slots="0">
                <process rank="0"/>
                <process rank="1"/>
        </host>
</map>
<stdout rank="0">main: before ClockTest</stdout>
<stdout rank="1">Before next</stdout>
<stdout rank="0">Before next</stdout>
[...hang...]

Is this a feature or a bug ? If the latter, do you want me to file a report in 
JIRA ? Thanks !
-- 

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone:  +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospi...@de.ibm.com
-------------------------------------
IBM Deutschland GmbH
Vorsitzender des Aufsichtsrats: Erich Clementi 
Geschäftsführung: Martin Jetter (Vorsitzender), 
Reinhard Reschke, Christoph Grandpierre, 
Klaus Lintelmann, Michael Diemer, Martina Koederitz 
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB 
14562 WEEE-Reg.-Nr. DE 99369940

public class Hello {
        def ClockTest() {
                val c = Clock.make();
                finish for (p in Place.places ) {
                        async (p) clocked (c) {
                                Console.OUT.println("Before next");
                                next;
                                Console.OUT.println("After next");
                        }
                }
        }
        
    public static def main(var args: Rail[String]!) {
         Console.OUT.println("main: before ClockTest");
         var h:Hello! = new Hello();
         h.ClockTest();
         Console.OUT.println("main: after ClockTest");
    }
}
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to