Hello,

I could test the patch, it works really well. With it, no need to implement
periodic polling, which is really a bad solution when on e can avoid it!

Still don't know if there could be a performance impact that would require
to have this as an optional behaviour.

Rich, please do you think it is an acceptable patch ? If so, I'll then send
my contributor agreement as needed, and open an issue.

Thanks in advance,

-- 
Laurent

2009/2/6 Laurent PETIT <laurent.pe...@gmail.com>

> Hello,
>
> I have a problem for implementing the auto-compile feature of clojuredev
> eclipse plugin.
>
> My problem is that it seems that the function 'compile returns very fast to
> the clojure dev builder, and when the builder refreshes the workspace
> (operation needed to "see" the newly compiled classes), it's ... to early !!
>
> I guess something could be done in clojure.lang.Compiler.writeClassFile()
> method to avoid this situation.
> The idea could be to make it guarantee that whenever it returns, the
> changes are not only flushed to the OS, but also written on disk.
> I don't know if this could have significant performance impacts, so maybe
> it could be necessary to make this behaviour dependent on some new
> parameter, or on a global var (something like *ensure-filesystem-sync*).
>
> I don't have clojuredev yet to test, but the modification would be
> something like (new end of clojure.lang.Compiler.writeClassFile()) (case
> without conditional on the sync mechanism) :
>     FileOutputStream cfs = new FileOutputStream(cf); /// <<<<<<<< change
> cfs type to FileOutputStream
>     try
>         {
>         cfs.write(bytecode);
>         cfs.flush(); // <<<<<<<<<<<<<<<<<<<<<<<<<<< flush cfs content
>         cfs.getFD().sync(); // <<<<<<<<<<<<<<<<<<<<<<<<< call cfs
> FileDescriptor's sync() method
>         }
>     finally
>         {
>         cfs.close();
>         cf.lastModified();
>         }
>
>
> If it is proved that it solves the above mentioned problem, would it be an
> acceptable patch ?
> Or, if you can think of another way to solve the general problem, please
> tell, I'll be glad to know about it !
>
> Regards,
>
> --
> Laurent PETIT
>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to