Exemplo n.º 1
0
Arquivo: dyad.c Projeto: shanfl/dyad
static void dyad_destroyStream(dyad_Stream *stream) {
  dyad_Event e;
  dyad_Stream **next;
  /* Close socket */
  if (stream->sockfd != -1) {
    close(stream->sockfd);
  }
  /* Emit destroy event */
  e = dyad_createEvent(DYAD_EVENT_DESTROY);
  e.msg = "the stream has been destroyed";
  dyad_emitEvent(stream, &e);
  /* Remove from list and decrement count */
  next = &dyad_streams;
  while (*next != stream) {
    next = &(*next)->next;
  }
  *next = stream->next;
  dyad_streamCount--;
  /* Destroy and free */
  dyad_vectorDeinit(&stream->listeners);
  dyad_vectorDeinit(&stream->lineBuffer);
  dyad_vectorDeinit(&stream->writeBuffer);
  dyad_free(stream->address);
  dyad_free(stream);
}
Exemplo n.º 2
0
static void dyad_destroyStream(dyad_Stream *stream) {
  dyad_Stream **next;
  /* Close socket */
  if (stream->sockfd != -1) {
    close(stream->sockfd);
  }
  /* Remove from list and decrement count */
  next = &dyad_streams;
  while (*next != stream) {
    next = &(*next)->next;
  }
  *next = stream->next;
  dyad_streamCount--;
  /* Destroy and free */
  dyad_vectorDeinit(&stream->listeners);
  dyad_vectorDeinit(&stream->lineBuffer);
  dyad_vectorDeinit(&stream->writeBuffer);
  dyad_free(stream->address);
  dyad_free(stream);
}