+++ /dev/null
-/*
- * libmowgli: A collection of useful routines for programming.
- * futuretest: Combustable lemons
- *
- * Copyright (c) 2012 Patrick McFarland <pmcfarland@adterrasperaspera.com>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include <mowgli.h>
-
-int main(int argc, char *argv[]) {
- char *text = "hello world";
-
- printf("create future: ");
- mowgli_future_t *future = mowgli_future_create();
- if(future != NULL)
- printf("correctly created future\n");
- else
- printf("error: abandon all hope\n");
-
- printf("get state manually of waiting future: ");
- if(mowgli_future_state(future) == MOWGLI_FUTURE_STATE_WAITING)
- printf("correctly waiting\n");
- else
- printf("error: %i\n", mowgli_future_state(future));
-
- printf("finish future: ");
- if(mowgli_future_finish(future, text) == MOWGLI_FUTURE_STATE_FINISHED)
- printf("correctly finished\n");
- else
- printf("error: %i\n", mowgli_future_state(future));
-
- printf("get result of finished future: ");
- if(mowgli_future_result(future) == text)
- printf("correct: %s\n", text);
- else
- printf("error: %s\n", (char *)mowgli_future_result(future));
-
- printf("get state of finished future: ");
- if(mowgli_future_state(future) == MOWGLI_FUTURE_STATE_FINISHED)
- printf("correctly finished\n");
- else
- printf("error: %i\n", mowgli_future_state(future));
-
- printf("reinit then cancel: ");
- if(mowgli_future_init(future) == 0) {
- if(mowgli_future_cancel(future) == MOWGLI_FUTURE_STATE_CANCELED)
- printf("correctly canceled\n");
- else
- printf("error: failed to cancel: %i\n", mowgli_future_state(future));
-
- printf("try to finish on canceled future: ");
- if(mowgli_future_finish(future, text) == MOWGLI_FUTURE_STATE_CANCELED)
- printf("correctly caught cancel\n");
- else
- printf("error: failed to cancel: %s\n", text);
- } else {
- printf("error: failed to reinit\n");
- }
-
- printf("reinit then finish twice: ");
- if(mowgli_future_init(future) == 0) {
- mowgli_future_finish(future, text);
-
- if(mowgli_future_finish(future, text) == MOWGLI_FUTURE_STATE_CONSISTENCY_FAILURE)
- printf("correctly raised consistency failure\n");
- else
- printf("error: finished twice: %s\n", text);
- } else {
- printf("error: failed to reinit\n");
- }
-}
void timer_oneshot(mowgli_eventloop_helper_proc_t *helper)
{
- mowgli_writef(helper->out_fd, "oneshot timer hit\n");
+ mowgli_writef(helper->fd, "oneshot timer hit\n");
}
void timer_tick(mowgli_eventloop_helper_proc_t *helper)
{
static int ticks = 0;
- mowgli_writef(helper->out_fd, "tick: %d\n", ++ticks);
+ mowgli_writef(helper->fd, "tick: %d\n", ++ticks);
if (ticks > 10)
mowgli_eventloop_break(helper->eventloop);
{
mowgli_eventloop_t *eventloop = helper->eventloop;
- mowgli_writef(helper->out_fd, "hi from pid %d\n", getpid());
+ mowgli_writef(helper->fd, "hi from pid %d\n", getpid());
mowgli_timer_add(eventloop, "timer_tick", (mowgli_event_dispatch_func_t *) timer_tick, helper, 1);
mowgli_timer_add_once(eventloop, "timer_oneshot", (mowgli_event_dispatch_func_t *) timer_oneshot, helper, 5);
mowgli_eventloop_run(eventloop);
- mowgli_writef(helper->out_fd, "eventloop halted\n");
+ mowgli_writef(helper->fd, "eventloop halted\n");
mowgli_eventloop_destroy(eventloop);
}
mowgli_eventloop_helper_proc_t *helper = mowgli_eventloop_io_helper(io);
bzero(buf, sizeof buf);
- r = read(helper->in_fd, buf, sizeof buf);
+ r = read(helper->fd, buf, sizeof buf);
if (r > 0)
- printf("helper %p [%d/%d]: %s", helper, helper->child->pid, helper->in_fd, buf);
+ printf("helper %p [%d/%d]: %s", helper, helper->child->pid, helper->fd, buf);
else if (r <= 0)
{
helper_count--;