[Date Prev][Date Next] [Chronological] [Thread] [Top]

migration





Hi,


here I am again, with a new question :-)

I don't understand the behavior of these two little programs, each ran
on a different machine:

machine 1:

# Ns.user := "david";;      
- : unit = ()
# Ns.register "destination" Join.here vartype;;
Warning: VARTYPE replaced by type 
 Join.location metatype
Using multicast
Multicast aborted (Failure("setsock_join"))
Querying name server shiva:20001
- : unit = ()
# Join.server ();;
- : unit = ()

machine 2:

# Ns.user := "david";;      
- : unit = ()
# let dest = Ns.lookup "destination" (vartype : Join.location
metatype);;
Warning: VARTYPE replaced by type 
 Join.location metatype
Using multicast
Multicast aborted (Failure("setsock_join"))
Querying name server shiva:20001
val dest : Join.location = <abstr>
# let log s = print_endline s; flush stdout;;
val log : string -> unit = <fun>
# class p () =
    method print =
      let rec f () =
        log "hello, world!";
        Thread.delay 3.0;
        f ()
      in Thread.create f ()
   
    method migrate = Join.go
  end;;
class p (unit) =
  method migrate : Join.location -> unit
  method print : Thread.thread
end
# let obj = new p ();;
val obj : p = <obj>
# obj#print; Thread.delay 10.0; obj#migrate dest;;
hello, world!
hello, world!
hello, world!
hello, world!
Uncaught exception: Failure("Go: migration of space location")


What does this exception mean?

dc

-- 
David Chemouil [mailto:chemouil@enseeiht.fr] [mobile: 06 84 16 26 65]

Laboratoire d'informatique et de mathématiques appliquées (IRIT-INPT)