/* Asynchronous version of g_subprocess_communicate(). Complete invocation with g_subprocess_communicate_finish().  */
void g_subprocess_communicate_async(GSubprocess *subprocess, GBytes *stdin_buf, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
/* Asynchronous version of g_subprocess_communicate(). Complete invocation with g_subprocess_communicate_finish().  */
void g_subprocess_communicate_async(GSubprocess *subprocess, GBytes *stdin_buf, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
{
  g_return_if_fail (G_IS_SUBPROCESS (subprocess));
  g_return_if_fail (stdin_buf == NULL || (subprocess->flags & G_SUBPROCESS_FLAGS_STDIN_PIPE));
  g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
  g_subprocess_communicate_internal (subprocess, FALSE, stdin_buf, cancellable, callback, user_data);
}