]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Removed the obsolete birdloop flagger
authorMaria Matejka <mq@ucw.cz>
Tue, 5 Mar 2024 13:52:50 +0000 (14:52 +0100)
committerMaria Matejka <mq@ucw.cz>
Wed, 22 May 2024 09:34:34 +0000 (11:34 +0200)
This was useful when events were locking. As now sending events is lockless,
we can drop this obsolete routine for good.

lib/io-loop.h
nest/route.h
nest/rt-table.c
sysdep/unix/io-loop.c
sysdep/unix/io-loop.h

index e888b514daf56d93707b9a10727f389d466b41f4..4b93919e38fd2b3b713cd8afec03b0dcb47d1a1b 100644 (file)
@@ -59,14 +59,6 @@ void birdloop_unlink(struct birdloop *loop);
 
 void birdloop_ping(struct birdloop *loop);
 
-struct birdloop_flag_handler {
-  void (*hook)(struct birdloop_flag_handler *, u32 flags);
-  void *data;
-};
-
-void birdloop_flag(struct birdloop *loop, u32 flag);
-void birdloop_flag_set_handler(struct birdloop *, struct birdloop_flag_handler *);
-
 /* Setup sockets */
 void birdloop_add_socket(struct birdloop *, struct birdsock *);
 void birdloop_remove_socket(struct birdloop *, struct birdsock *);
index f398cb3307762087d214d877e6ddd4ff31c50c40..d92c4946da6165d62fbe4428b5546a45ca643ff8 100644 (file)
@@ -125,7 +125,6 @@ struct rtable_private {
   struct event *hcu_uncork_event;      /* Helper event to schedule HCU on uncork */
   struct timer *prune_timer;           /* Timer for periodic pruning / GC */
   struct event *prune_event;           /* Event for prune execution */
-  struct birdloop_flag_handler fh;     /* Handler for simple events */
   btime last_rt_change;                        /* Last time when route changed */
   btime gc_time;                       /* Time of last GC */
   uint gc_counter;                     /* Number of operations since last GC */
index 898d8b574213c488b46756abd4c5ee9033e4d510..b70911ead71a9deec1b673b51e00e2d7a1960696 100644 (file)
@@ -2690,8 +2690,6 @@ rt_setup(pool *pp, struct rtable_config *cf)
 
   UNLOCK_DOMAIN(rtable, dom);
 
-  /* Setup the service thread flag handler */
-  birdloop_flag_set_handler(t->loop, &t->fh);
   birdloop_leave(t->loop);
 
   return RT_PUB(t);
index 96aab7e6a09ab302d8126f20b99a879e426bd53e..5934c12905234a8008a841f9ddc2e3301c36986b 100644 (file)
@@ -188,34 +188,6 @@ birdloop_in_this_thread(struct birdloop *loop)
   return pthread_equal(pthread_self(), loop->thread->thread_id);
 }
 
-void
-birdloop_flag(struct birdloop *loop, u32 flag)
-{
-  atomic_fetch_or_explicit(&loop->flags, flag, memory_order_acq_rel);
-  birdloop_ping(loop);
-}
-
-void
-birdloop_flag_set_handler(struct birdloop *loop, struct birdloop_flag_handler *fh)
-{
-  ASSERT_DIE(birdloop_inside(loop));
-  loop->flag_handler = fh;
-}
-
-static int
-birdloop_process_flags(struct birdloop *loop)
-{
-  if (!loop->flag_handler)
-    return 0;
-
-  u32 flags = atomic_exchange_explicit(&loop->flags, 0, memory_order_acq_rel);
-  if (!flags)
-    return 0;
-
-  loop->flag_handler->hook(loop->flag_handler, flags);
-  return 1;
-}
-
 /*
  *     Wakeup code for birdloop
  */
@@ -1504,9 +1476,6 @@ birdloop_run(void *_loop)
     /* Run timers */
     timers_fire(&loop->time, 0);
 
-    /* Run flag handlers */
-    repeat += birdloop_process_flags(loop);
-
     /* Run events */
     repeat += ev_run_list(&loop->event_list);
 
index 53d9f96b9378825cb4d2de08804468b461bd0dfe..71e5b109c7c66d93edf0273e84cad358cfa0b2c3 100644 (file)
@@ -58,8 +58,6 @@ struct birdloop
   _Atomic u32 thread_transition;
 #define LTT_PING  1
 #define LTT_MOVE  2
-  _Atomic u32 flags;
-  struct birdloop_flag_handler *flag_handler;
 
   void (*stopped)(void *data);
   void *stop_data;