Printing thread Ids created and exited, others (if others) are zmqs internal threading, moved all zmq socket type to publish subscriber type: (non blocking in send if no client) as per Aldos gui and probably faster, as only clients to receiver standard impl is aldos gui/slsDetectorGui/xiaoqiangs call back via detector class

This commit is contained in:
Dhanya Maliakal 2017-08-24 16:06:00 +02:00
parent 960dc5c62f
commit 2d52058a55
6 changed files with 28 additions and 14 deletions

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsReceiverSoftware
URL: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
Repsitory UUID: 1102ff107a9d19583f85fde2b7eddbe7e9b50715
Revision: 648
Branch: 3.0-rc
Repsitory UUID: ec1b8333034e4a09d819b2317994813435c7159f
Revision: 651
Branch: 3.0
Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 653
Last Changed Date: 2017-08-18 18:24:30.000000002 +0200 ./src/Listener.cpp
Last Changed Rev: 656
Last Changed Date: 2017-08-24 14:09:36.000000002 +0200 ./src/Fifo.cpp

View File

@ -63,13 +63,18 @@ public:
return;
// create publisher
socketDescriptor = zmq_socket (contextDescriptor, ZMQ_PULL);
socketDescriptor = zmq_socket (contextDescriptor, ZMQ_SUB);
if (socketDescriptor == NULL) {
PrintError ();
Close ();
}
//Socket Options provided above
// an empty string implies receiving any messages
if ( zmq_setsockopt(socketDescriptor, ZMQ_SUBSCRIBE, "", 0)) {
PrintError ();
Close();
}
//ZMQ_LINGER default is already -1 means no messages discarded. use this options if optimizing required
//ZMQ_SNDHWM default is 0 means no limit. use this to optimize if optimizing required
// eg. int value = -1;
@ -104,7 +109,7 @@ public:
if (contextDescriptor == NULL)
return;
// create publisher
socketDescriptor = zmq_socket (contextDescriptor, ZMQ_PUSH);
socketDescriptor = zmq_socket (contextDescriptor, ZMQ_PUB);
if (socketDescriptor == NULL) {
PrintError ();
Close ();

View File

@ -1,11 +1,11 @@
//#define SVNPATH ""
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_receiver_software.git"
//#define SVNREPPATH ""
#define SVNREPUUID "1102ff107a9d19583f85fde2b7eddbe7e9b50715"
//#define SVNREV 0x653
#define SVNREPUUID "ec1b8333034e4a09d819b2317994813435c7159f"
//#define SVNREV 0x656
//#define SVNKIND ""
//#define SVNSCHED ""
#define SVNAUTH "Dhanya_Maliakal"
#define SVNREV 0x653
#define SVNDATE 0x20170818
#define SVNREV 0x656
#define SVNDATE 0x20170824
//

View File

@ -8,6 +8,7 @@
#include "ThreadObject.h"
#include <iostream>
#include <syscall.h>
using namespace std;
@ -74,6 +75,7 @@ void* ThreadObject::StartThread(void* thisPointer) {
void ThreadObject::RunningThread() {
bprintf(BLUE,"Created [ %s Thread %d, Tid: %ld ]\n", GetType().c_str(),index, (long)syscall(SYS_gettid));
while(true) {
while(IsRunning()) {
@ -87,7 +89,7 @@ void ThreadObject::RunningThread() {
sem_wait(&semaphore);
if(killThread) {
bprintf(BLUE,"%s Thread %d: Goodbye\n",GetType().c_str(),index);
bprintf(BLUE,"Exiting [ %s Thread %d, Tid: %ld ]\n", GetType().c_str(),index, (long)syscall(SYS_gettid));
pthread_exit(NULL);
}

View File

@ -14,6 +14,7 @@
#include <sys/types.h> //wait
#include <sys/wait.h> //wait
#include <syscall.h>
using namespace std;
@ -58,7 +59,7 @@ void GetData(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, ui
int main(int argc, char *argv[]) {
keeprunning = true;
bprintf(BLUE,"[ Pid: %ld ]\n", (long)getpid());
bprintf(BLUE,"Created [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
// Catch signal SIGINT to close files and call destructors properly
struct sigaction sa;
@ -85,6 +86,7 @@ int main(int argc, char *argv[]) {
slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret);
if(ret==slsReceiverDefs::FAIL){
delete receiver;
bprintf(BLUE,"Exiting [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
exit(EXIT_FAILURE);
}
@ -133,6 +135,7 @@ int main(int argc, char *argv[]) {
//start tcp server thread
if (receiver->start() == slsReceiverDefs::FAIL){
delete receiver;
bprintf(BLUE,"Exiting [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
exit(EXIT_FAILURE);
}
@ -142,6 +145,7 @@ int main(int argc, char *argv[]) {
usleep(5 * 1000 * 1000);
delete receiver;
bprintf(BLUE,"Exiting [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
FILE_LOG(logINFO) << "Goodbye!";
return 0;
}

View File

@ -15,6 +15,7 @@
#include <sstream>
#include <fstream>
#include <stdlib.h>
#include <syscall.h>
using namespace std;
@ -185,7 +186,7 @@ void* slsReceiverTCPIPInterface::startTCPServerThread(void *this_pointer){
void slsReceiverTCPIPInterface::startTCPServer(){
bprintf(BLUE,"Created [ TCP server Tid: %ld ]\n", (long)syscall(SYS_gettid));
#ifdef VERYVERBOSE
FILE_LOG(logDEBUG5) << "Starting Receiver TCP Server";
@ -221,6 +222,7 @@ void slsReceiverTCPIPInterface::startTCPServer(){
}
mySock->exitServer();
bprintf(BLUE,"Exiting [ TCP server Tid: %ld ]\n", (long)syscall(SYS_gettid));
pthread_exit(NULL);
}
@ -231,6 +233,7 @@ void slsReceiverTCPIPInterface::startTCPServer(){
receiverBase->shutDownUDPSockets();
}
}
bprintf(BLUE,"Exiting [ TCP server Tid: %ld ]\n", (long)syscall(SYS_gettid));
pthread_exit(NULL);
}