Fixed race condition where synchronouslyClose() would be called multiple
times if AbstractAsyncWriter.close() called twice simultaneously.
Allowing close() to be called multiple times as per java.io.Closeable
interface specifications.