diff --git a/Source/Components/DataSources/LinuxTimer/LinuxTimer.cpp b/Source/Components/DataSources/LinuxTimer/LinuxTimer.cpp
index 7639878aaed79cf55cc90c54ef9a275b55f0b979..d4e6f7a7b71d61be83dff5342eaada658aa62a2b 100644
--- a/Source/Components/DataSources/LinuxTimer/LinuxTimer.cpp
+++ b/Source/Components/DataSources/LinuxTimer/LinuxTimer.cpp
@@ -197,6 +197,7 @@ bool LinuxTimer::Initialise(StructuredDataI &data) {
                 }
 
                 if (ok) {
+                    executor.SetPriorityClass(Threads::RealTimePriorityClass);
                     executor.SetCPUMask(cpuMask);
                     executor.SetStackSize(stackSize);
                 }
diff --git a/Source/Components/DataSources/NI6259/NI6259ADC.cpp b/Source/Components/DataSources/NI6259/NI6259ADC.cpp
index fa5e63bdec4d6d3c13ffaf42645e4be739d115cb..7629b6e3c1f04de1a043c0ec081200bb1745ee80 100644
--- a/Source/Components/DataSources/NI6259/NI6259ADC.cpp
+++ b/Source/Components/DataSources/NI6259/NI6259ADC.cpp
@@ -226,6 +226,7 @@ bool NI6259ADC::PrepareNextState(const char8* const currentStateName, const char
         if (executor.GetStatus() == EmbeddedThreadI::OffState) {
             keepRunning = true;
             if (cpuMask != 0u) {
+                executor.SetPriorityClass(Threads::RealTimePriorityClass);
                 executor.SetCPUMask(cpuMask);
             }
             executor.SetName(GetName());
diff --git a/Source/Components/DataSources/NI6368/NI6368ADC.cpp b/Source/Components/DataSources/NI6368/NI6368ADC.cpp
index e03b50ec2d132730b5547fcdaca845231b65a6e3..0474f4bb84dbd3359205470ec7f914b2a730488d 100644
--- a/Source/Components/DataSources/NI6368/NI6368ADC.cpp
+++ b/Source/Components/DataSources/NI6368/NI6368ADC.cpp
@@ -290,6 +290,7 @@ bool NI6368ADC::PrepareNextState(const char8* const currentStateName, const char
             if (executor.GetStatus() == EmbeddedThreadI::OffState) {
                 keepRunning = true;
                 if (cpuMask != 0u) {
+                    executor.SetPriorityClass(Threads::RealTimePriorityClass);
                     executor.SetCPUMask(cpuMask);
                 }
                 executor.SetName(GetName());
diff --git a/Source/Components/DataSources/SDN/SDNSubscriber.cpp b/Source/Components/DataSources/SDN/SDNSubscriber.cpp
index 7cb973959a681dd2824b8ad6fa15110d7593bbf6..fdf75065435554da54420911fae20e7f5a93eef7 100644
--- a/Source/Components/DataSources/SDN/SDNSubscriber.cpp
+++ b/Source/Components/DataSources/SDN/SDNSubscriber.cpp
@@ -605,7 +605,8 @@ bool SDNSubscriber::PrepareNextState(const char8* const currentStateName,
                if (executionMode == SDN_SUB_EXEC_MODE_SPAWNED) {
                    if (executor.GetStatus() == EmbeddedThreadI::OffState) {
                        if (cpuMask != 0ull) {
-                           executor.SetCPUMask(BitSet(cpuMask));
+                            executor.SetPriorityClass(Threads::RealTimePriorityClass);
+                            executor.SetCPUMask(BitSet(cpuMask));
                        }
                        // Start the SingleThreadService
                        ok = executor.Start();
diff --git a/Source/Components/DataSources/UARTDataSource/UARTDataSource.cpp b/Source/Components/DataSources/UARTDataSource/UARTDataSource.cpp
index aaa103168ba2653264e60005c39d3aa2e5422e4b..4ba5f2a8602bdd2e7870d2c14783ad2b3f018a64 100644
--- a/Source/Components/DataSources/UARTDataSource/UARTDataSource.cpp
+++ b/Source/Components/DataSources/UARTDataSource/UARTDataSource.cpp
@@ -178,6 +178,7 @@ bool UARTDataSource::Initialise(StructuredDataI &data) {
             cpuMask = 0xFFu;
             REPORT_ERROR(ErrorManagement::Warning, "CPUMask not specified using: %d", cpuMask);
         }
+        executor.SetPriorityClass(Threads::RealTimePriorityClass);
         executor.SetCPUMask(cpuMask);
     }
 
diff --git a/Source/Components/DataSources/UDP/UDPReceiver.cpp b/Source/Components/DataSources/UDP/UDPReceiver.cpp
index 209c42fca8c5785536549ebcde20a2c445e1cf83..8fc9e30b2cf4eeddb9d582ee72e9229e9c552509 100755
--- a/Source/Components/DataSources/UDP/UDPReceiver.cpp
+++ b/Source/Components/DataSources/UDP/UDPReceiver.cpp
@@ -213,6 +213,7 @@ bool UDPReceiver::SetConfiguredDatabase(StructuredDataI &data) {
         }
     }
     if (executionMode == UDPReceiverExecutionModeIndependent) {
+        executor.SetPriorityClass(Threads::RealTimePriorityClass);
         executor.SetCPUMask(cpuMask);
         executor.SetStackSize(stackSize);
     }