Миш, я вот тоже сначала написал "этого не может быть потому что не может быть"
Что я увидел:
flush(); возвращает true но не пишет ничего, не создаёт *.sol файлика, то есть по барабану, только при закрытии приложения, происходит то что по идее и должен делать flush()
если не ошибаюсь, ещё желаемый эффект наблюдается "...when the shared object is garbage-collected because it no longer has any references to it."