static gboolean stress_test_old_api (gpointer data) { typedef enum { ADD_RANDOM, REMOVE_RANDOM, LAST_ACTION } Action; Info *info = data; Action action; if (info->counter++ == 200) { gtk_main_quit (); return FALSE; } if (!info->toolbar) { info->toolbar = GTK_TOOLBAR (gtk_toolbar_new ()); gtk_container_add (GTK_CONTAINER (info->window), GTK_WIDGET (info->toolbar)); gtk_widget_show (GTK_WIDGET (info->toolbar)); } if (!info->toolbar->children) { add_random (info->toolbar, info->counter); return TRUE; } else if (g_list_length (info->toolbar->children) > 50) { int i; for (i = 0; i < 25; i++) remove_random (info->toolbar); return TRUE; } action = g_random_int_range (0, LAST_ACTION); switch (action) { case ADD_RANDOM: add_random (info->toolbar, info->counter); break; case REMOVE_RANDOM: remove_random (info->toolbar); break; default: g_assert_not_reached(); break; } return TRUE; }
int main(void) { unsigned requests = 0; srand(time()); while (0 != servers_left()) { if (0 == ++requests % 10) remove_random(); balance_request(); } printf("Happy April Fools!\n"); printf("%i requests handled\n", requests); return 0; }