[tango] 01/01: fix upstream p812_2

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Tue Nov 26 06:36:17 UTC 2013


This is an automated email from the git hooks/post-receive script.

picca pushed a commit to branch master
in repository tango.

commit 348705489b3ef3d3bd548527fb1ae63a76a55539
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Mon Nov 25 20:44:51 2013 +0100

    fix upstream p812_2
---
 debian/changelog                              |   7 ++
 debian/patches/0006-fix-upstream-p812_2.patch | 146 ++++++++++++++++++++++++++
 debian/patches/series                         |   1 +
 3 files changed, 154 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 09f9011..bb9a929 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+tango (8.1.2c+dfsg-3) unstable; urgency=low
+
+  * debian/patches
+    + 0006-fix-upstream-p812_2.patch
+
+ -- Picca Frédéric-Emmanuel <picca at debian.org>  Mon, 25 Nov 2013 20:42:41 +0100
+
 tango (8.1.2c+dfsg-2) unstable; urgency=low
 
   * debian/rules
diff --git a/debian/patches/0006-fix-upstream-p812_2.patch b/debian/patches/0006-fix-upstream-p812_2.patch
new file mode 100644
index 0000000..fafe50a
--- /dev/null
+++ b/debian/patches/0006-fix-upstream-p812_2.patch
@@ -0,0 +1,146 @@
+From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
+Date: Mon, 25 Nov 2013 20:41:39 +0100
+Subject: fix upstream p812_2
+
+---
+ lib/cpp/client/api_util.cpp         |  4 ++++
+ lib/cpp/client/event.cpp            | 11 ++++++-----
+ lib/cpp/client/eventconsumer.h      |  1 +
+ lib/cpp/client/eventkeepalive.cpp   |  9 +++++++++
+ lib/cpp/client/zmqeventconsumer.cpp | 21 ++++++++++++++++-----
+ 5 files changed, 36 insertions(+), 10 deletions(-)
+
+diff --git a/lib/cpp/client/api_util.cpp b/lib/cpp/client/api_util.cpp
+index 6e38825..3ed6d83 100644
+--- a/lib/cpp/client/api_util.cpp
++++ b/lib/cpp/client/api_util.cpp
+@@ -257,6 +257,10 @@ void ApiUtil::create_orb()
+ 
+ 	if (sigaction(SIGPIPE,NULL,&sa) == -1)
+ 		sa.sa_handler = NULL;
++#else
++	WORD rel = 0x0202;
++	WSADATA dat;
++	WSAStartup(rel,&dat);
+ #endif
+ 
+ //
+diff --git a/lib/cpp/client/event.cpp b/lib/cpp/client/event.cpp
+index 75b8c33..f3fecf1 100644
+--- a/lib/cpp/client/event.cpp
++++ b/lib/cpp/client/event.cpp
+@@ -202,12 +202,12 @@ EventConsumer::EventConsumer(ApiUtil *api_ptr)
+                         {
+                             break;
+                         }
++					}
+ 
+-                        if (j == env_var_fqdn_prefix.size())
+-                        {
+-                            string prefix = "tango://" + vs[i] + '/';
+-                            env_var_fqdn_prefix.push_back(prefix);
+-                        }
++                    if (j == env_var_fqdn_prefix.size())
++                    {
++                        string prefix = "tango://" + vs[i] + '/';
++                        env_var_fqdn_prefix.push_back(prefix);
+                     }
+ #endif
+                 }
+@@ -1441,6 +1441,7 @@ int EventConsumer::connect_event(DeviceProxy *device,
+             new_event_callback.device_idl = 0;
+     }
+     new_event_callback.ctr = 0;
++	new_event_callback.discarded_event = false;
+     if (zmq_used == true)
+ 		new_event_callback.endpoint = dvlsa->svalue[1].in();
+ 
+diff --git a/lib/cpp/client/eventconsumer.h b/lib/cpp/client/eventconsumer.h
+index f403fb2..20c8604 100644
+--- a/lib/cpp/client/eventconsumer.h
++++ b/lib/cpp/client/eventconsumer.h
+@@ -298,6 +298,7 @@ typedef struct event_callback_zmq
+     DevLong                         device_idl;
+     DevULong                        ctr;
+     string							endpoint;
++	bool							discarded_event;
+ }EventCallBackZmq;
+ 
+ typedef struct event_callback: public EventCallBackBase, public EventCallBackZmq
+diff --git a/lib/cpp/client/eventkeepalive.cpp b/lib/cpp/client/eventkeepalive.cpp
+index e204fae..2d93241 100644
+--- a/lib/cpp/client/eventkeepalive.cpp
++++ b/lib/cpp/client/eventkeepalive.cpp
+@@ -452,6 +452,10 @@ void EventConsumerKeepAliveThread::reconnect_to_zmq_event(EvChanIte &ipos,EventC
+ 
+ 						event_consumer->connect_event_system(d_name,epos->second.attr_name,epos->second.event_name,vs,ipos,ecbs,dd);
+ 
++						const DevVarLongStringArray *dvlsa;
++						dd >> dvlsa;
++						epos->second.endpoint = dvlsa->svalue[1].in();
++
+ 						cout3 << "Reconnected to ZMQ event" << endl;
+ 					}
+ 					catch(...)
+@@ -588,6 +592,11 @@ void *EventConsumerKeepAliveThread::run_undetached(TANGO_UNUSED(void *arg))
+ 					    {
+                             try
+                             {
++								if (notifd_event_consumer == NULL)
++								{
++									ApiUtil::instance()->create_notifd_event_consumer();
++									notifd_event_consumer = ApiUtil::instance()->get_notifd_event_consumer();
++								}
+                                 notifd_event_consumer->connect_event(vpos->device,vpos->attribute,vpos->event_type,
+ 																					vpos->callback,
+ 																					vpos->ev_queue,
+diff --git a/lib/cpp/client/zmqeventconsumer.cpp b/lib/cpp/client/zmqeventconsumer.cpp
+index 8fa8ce0..6ebdfc8 100644
+--- a/lib/cpp/client/zmqeventconsumer.cpp
++++ b/lib/cpp/client/zmqeventconsumer.cpp
+@@ -859,6 +859,7 @@ bool ZmqEventConsumer::process_ctrl(zmq::message_t &received_ctrl,zmq::pollitem_
+                 event_sub_sock->setsockopt(ZMQ_RCVHWM,&sub_hwm,sizeof(sub_hwm));
+ 
+                 event_sub_sock->connect(endpoint);
++
+                 if (force_connect == 0)
+                     connected_pub.push_back(endpoint);
+             }
+@@ -935,9 +936,10 @@ bool ZmqEventConsumer::process_ctrl(zmq::message_t &received_ctrl,zmq::pollitem_
+ 				vector<string>::iterator pos;
+ 				pos = find(connected_pub.begin(),connected_pub.end(),endpoint_str);
+ 				if (pos != connected_pub.end())
++				{
+ 					connected_pub.erase(pos);
+-
+-				event_sub_sock->disconnect(endpoint);
++					event_sub_sock->disconnect(endpoint);
++				}
+ #endif
+             }
+             else
+@@ -1930,12 +1932,21 @@ void ZmqEventConsumer::push_zmq_event(string &ev_name,unsigned char endian,zmq::
+ 			if (missed_event >= 2)
+             {
+                 err_missed_event = true;
++				evt_cb.discarded_event = false;
+             }
+             else if (missed_event == 0)
+             {
+-                map_modification_lock.readerOut();
+-                return;
+-            }
++				if (evt_cb.discarded_event == false)
++				{
++					evt_cb.discarded_event = true;
++					map_modification_lock.readerOut();
++					return;
++				}
++				else
++					evt_cb.discarded_event = false;
++			}
++			else
++				evt_cb.discarded_event = false;
+ 
+             evt_cb.ctr = ds_ctr;
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 2a62624..e6aeb4c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
 0003-debian-notify_daemon.patch
 0004-fix-upstream-p812_1.diff.patch
 0005-forwarded-upstrean-fix-FTBFS-on-sparc64.patch
+0006-fix-upstream-p812_2.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/tango.git



More information about the debian-science-commits mailing list