… | |
… | |
591 | if (syserr_cb) |
591 | if (syserr_cb) |
592 | syserr_cb (msg); |
592 | syserr_cb (msg); |
593 | else |
593 | else |
594 | { |
594 | { |
595 | #if EV_AVOID_STDIO |
595 | #if EV_AVOID_STDIO |
596 | const char *err = strerror (errno); |
|
|
597 | |
|
|
598 | ev_printerr (msg); |
596 | ev_printerr (msg); |
599 | ev_printerr (": "); |
597 | ev_printerr (": "); |
600 | ev_printerr (err); |
598 | ev_printerr (strerror (errno)); |
601 | ev_printerr ("\n"); |
599 | ev_printerr ("\n"); |
602 | #else |
600 | #else |
603 | perror (msg); |
601 | perror (msg); |
604 | #endif |
602 | #endif |
605 | abort (); |
603 | abort (); |
… | |
… | |
639 | ptr = alloc (ptr, size); |
637 | ptr = alloc (ptr, size); |
640 | |
638 | |
641 | if (!ptr && size) |
639 | if (!ptr && size) |
642 | { |
640 | { |
643 | #if EV_AVOID_STDIO |
641 | #if EV_AVOID_STDIO |
644 | ev_printerr ("libev: memory allocation failed, aborting.\n"); |
642 | ev_printerr ("(libev) memory allocation failed, aborting.\n"); |
645 | #else |
643 | #else |
646 | fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size); |
644 | fprintf (stderr, "(libev) cannot allocate %ld bytes, aborting.", size); |
647 | #endif |
645 | #endif |
648 | abort (); |
646 | abort (); |
649 | } |
647 | } |
650 | |
648 | |
651 | return ptr; |
649 | return ptr; |
… | |
… | |
1735 | /* free up a loop structure */ |
1733 | /* free up a loop structure */ |
1736 | void |
1734 | void |
1737 | ev_loop_destroy (EV_P) |
1735 | ev_loop_destroy (EV_P) |
1738 | { |
1736 | { |
1739 | int i; |
1737 | int i; |
|
|
1738 | |
|
|
1739 | #if EV_MULTIPLICITY |
|
|
1740 | /* mimic free (0) */ |
|
|
1741 | if (!EV_A) |
|
|
1742 | return; |
|
|
1743 | #endif |
1740 | |
1744 | |
1741 | #if EV_CLEANUP_ENABLE |
1745 | #if EV_CLEANUP_ENABLE |
1742 | /* queue cleanup watchers (and execute them) */ |
1746 | /* queue cleanup watchers (and execute them) */ |
1743 | if (expect_false (cleanupcnt)) |
1747 | if (expect_false (cleanupcnt)) |
1744 | { |
1748 | { |