diff --git a/example/Makefile.am b/example/Makefile.am
index fcdbaa5..c9a96fc 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -12,10 +12,10 @@
 
 noinst_PROGRAMS += heartbeat
 heartbeat_SOURCES = heartbeat.cpp
-heartbeat_LDADD = $(SDEVENTPLUS_LIBS)
+heartbeat_LDADD = $(SDEVENTPLUS_LIBS) $(STDPLUS_LIBS)
 
 noinst_PROGRAMS += heartbeat_timer
 heartbeat_timer_SOURCES = heartbeat_timer.cpp
-heartbeat_timer_LDADD = $(SDEVENTPLUS_LIBS)
+heartbeat_timer_LDADD = $(SDEVENTPLUS_LIBS) $(STDPLUS_LIBS)
 
 endif
diff --git a/example/heartbeat.cpp b/example/heartbeat.cpp
index c4adaac..f7390d7 100644
--- a/example/heartbeat.cpp
+++ b/example/heartbeat.cpp
@@ -2,17 +2,26 @@
 #include <cstdio>
 #include <sdeventplus/clock.hpp>
 #include <sdeventplus/event.hpp>
+#include <sdeventplus/source/signal.hpp>
 #include <sdeventplus/source/time.hpp>
+#include <stdplus/signal.hpp>
 #include <string>
 #include <utility>
 
 using sdeventplus::Event;
 using sdeventplus::source::Enabled;
+using sdeventplus::source::Signal;
 
 constexpr auto clockId = sdeventplus::ClockId::RealTime;
 using Clock = sdeventplus::Clock<clockId>;
 using Time = sdeventplus::source::Time<clockId>;
 
+void intCb(Signal& signal, const struct signalfd_siginfo*)
+{
+    printf("Exiting\n");
+    signal.get_event().exit(0);
+}
+
 int main(int argc, char* argv[])
 {
     if (argc != 2)
@@ -36,5 +45,7 @@
     };
     Time time(event, Clock(event).now(), std::chrono::seconds{1},
               std::move(hbFunc));
+    stdplus::signal::block(SIGINT);
+    Signal signal(event, SIGINT, intCb);
     return event.loop();
 }
diff --git a/example/heartbeat_timer.cpp b/example/heartbeat_timer.cpp
index c8354e8..63c33c0 100644
--- a/example/heartbeat_timer.cpp
+++ b/example/heartbeat_timer.cpp
@@ -5,18 +5,28 @@
 
 #include <chrono>
 #include <cstdio>
+#include <functional>
 #include <sdeventplus/clock.hpp>
 #include <sdeventplus/event.hpp>
+#include <sdeventplus/source/signal.hpp>
 #include <sdeventplus/utility/timer.hpp>
+#include <stdplus/signal.hpp>
 #include <string>
 
 using sdeventplus::Clock;
 using sdeventplus::ClockId;
 using sdeventplus::Event;
+using sdeventplus::source::Signal;
 
 constexpr auto clockId = ClockId::RealTime;
 using Timer = sdeventplus::utility::Timer<clockId>;
 
+void intCb(Signal& signal, const struct signalfd_siginfo*)
+{
+    printf("Exiting\n");
+    signal.get_event().exit(0);
+}
+
 int main(int argc, char* argv[])
 {
     if (argc != 2)
@@ -31,5 +41,7 @@
     auto event = Event::get_default();
     Timer timer(event, [](Timer&) { printf("Beat\n"); },
                 std::chrono::seconds{interval});
+    stdplus::signal::block(SIGINT);
+    Signal signal(event, SIGINT, intCb);
     return event.loop();
 }
diff --git a/example/meson.build b/example/meson.build
index 1f18444..ea04ff5 100644
--- a/example/meson.build
+++ b/example/meson.build
@@ -9,5 +9,6 @@
   executable(example, example + '.cpp',
              include_directories: includes,
              implicit_include_directories: false,
-             link_with: sdeventplus)
+             link_with: sdeventplus,
+             dependencies: stdplus)
 endforeach
