Update to 0.3.1
This commit is contained in:
parent
74c5d3e8c9
commit
02f70ce4a4
@ -1,3 +1,3 @@
|
|||||||
*.src.rpm
|
*.src.rpm
|
||||||
.*.log
|
.*.log
|
||||||
gtk-vnc-0.2.0.tar.gz
|
gtk-vnc-*.tar.gz
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
changeset: 76:949312711737
|
|
||||||
tag: tip
|
|
||||||
user: "Daniel P. Berrange <berrange@redhat.com>"
|
|
||||||
date: Thu Oct 04 21:45:15 2007 -0400
|
|
||||||
files: src/coroutine.c
|
|
||||||
description:
|
|
||||||
Fix to coroutine caller state management to avoid SEGV
|
|
||||||
|
|
||||||
|
|
||||||
diff -r ef58fe73ab0c -r 949312711737 src/coroutine.c
|
|
||||||
--- a/src/coroutine.c Thu Oct 04 10:30:40 2007 -0300
|
|
||||||
+++ b/src/coroutine.c Thu Oct 04 21:45:15 2007 -0400
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
+#include <stdlib.h>
|
|
||||||
#include "coroutine.h"
|
|
||||||
|
|
||||||
int coroutine_release(struct coroutine *co)
|
|
||||||
@@ -57,25 +58,23 @@ int coroutine_init(struct coroutine *co)
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
-static __thread struct coroutine system;
|
|
||||||
+static __thread struct coroutine leader;
|
|
||||||
static __thread struct coroutine *current;
|
|
||||||
#else
|
|
||||||
-static struct coroutine system;
|
|
||||||
+static struct coroutine leader;
|
|
||||||
static struct coroutine *current;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct coroutine *coroutine_self(void)
|
|
||||||
{
|
|
||||||
if (current == NULL)
|
|
||||||
- current = &system;
|
|
||||||
+ current = &leader;
|
|
||||||
return current;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *coroutine_swap(struct coroutine *from, struct coroutine *to, void *arg)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
-
|
|
||||||
- to->caller = from;
|
|
||||||
to->data = arg;
|
|
||||||
current = to;
|
|
||||||
ret = cc_swap(&from->cc, &to->cc);
|
|
||||||
@@ -83,7 +82,7 @@ void *coroutine_swap(struct coroutine *f
|
|
||||||
return from->data;
|
|
||||||
else if (ret == 1) {
|
|
||||||
coroutine_release(to);
|
|
||||||
- current = &system;
|
|
||||||
+ current = &leader;
|
|
||||||
to->exited = 1;
|
|
||||||
return to->data;
|
|
||||||
}
|
|
||||||
@@ -93,12 +92,23 @@ void *coroutine_swap(struct coroutine *f
|
|
||||||
|
|
||||||
void *yieldto(struct coroutine *to, void *arg)
|
|
||||||
{
|
|
||||||
+ if (to->caller) {
|
|
||||||
+ fprintf(stderr, "Co-routine is re-entering itself\n");
|
|
||||||
+ abort();
|
|
||||||
+ }
|
|
||||||
+ to->caller = coroutine_self();
|
|
||||||
return coroutine_swap(coroutine_self(), to, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *yield(void *arg)
|
|
||||||
{
|
|
||||||
- return yieldto(coroutine_self()->caller, arg);
|
|
||||||
+ struct coroutine *to = coroutine_self()->caller;
|
|
||||||
+ if (!to) {
|
|
||||||
+ fprintf(stderr, "Co-routine is yielding to no one\n");
|
|
||||||
+ abort();
|
|
||||||
+ }
|
|
||||||
+ coroutine_self()->caller = NULL;
|
|
||||||
+ return coroutine_swap(coroutine_self(), to, arg);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* Local variables:
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
changeset: 78:8d1799e6a392
|
|
||||||
tag: tip
|
|
||||||
user: "Daniel P. Berrange <berrange@redhat.com>"
|
|
||||||
date: Wed Oct 10 16:38:16 2007 -0400
|
|
||||||
files: src/coroutine.c
|
|
||||||
description:
|
|
||||||
Clear coroutine caller when exiting coroutine
|
|
||||||
|
|
||||||
|
|
||||||
diff -r df7828ad6498 -r 8d1799e6a392 src/coroutine.c
|
|
||||||
--- a/src/coroutine.c Wed Oct 10 10:09:08 2007 -0300
|
|
||||||
+++ b/src/coroutine.c Wed Oct 10 16:38:16 2007 -0400
|
|
||||||
@@ -28,6 +28,8 @@ static int _coroutine_release(struct con
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ co->caller = NULL;
|
|
||||||
|
|
||||||
return munmap(cc->stack, cc->stack_size);
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
diff -rup gtk-vnc-0.2.0.orig/src/coroutine.c gtk-vnc-0.2.0.new/src/coroutine.c
|
|
||||||
--- gtk-vnc-0.2.0.orig/src/coroutine.c 2007-09-13 17:11:29.000000000 -0400
|
|
||||||
+++ gtk-vnc-0.2.0.new/src/coroutine.c 2007-09-26 15:48:23.000000000 -0400
|
|
||||||
@@ -44,8 +44,8 @@ int coroutine_init(struct coroutine *co)
|
|
||||||
|
|
||||||
co->cc.stack_size = co->stack_size;
|
|
||||||
co->cc.stack = mmap(0, co->stack_size,
|
|
||||||
- PROT_READ | PROT_WRITE | PROT_EXEC,
|
|
||||||
- MAP_SHARED | MAP_ANONYMOUS | MAP_GROWSDOWN,
|
|
||||||
+ PROT_READ | PROT_WRITE,
|
|
||||||
+ MAP_PRIVATE | MAP_ANONYMOUS,
|
|
||||||
-1, 0);
|
|
||||||
if (co->cc.stack == MAP_FAILED)
|
|
||||||
return -1;
|
|
13
gtk-vnc.spec
13
gtk-vnc.spec
@ -2,14 +2,11 @@
|
|||||||
|
|
||||||
Summary: A GTK widget for VNC clients
|
Summary: A GTK widget for VNC clients
|
||||||
Name: gtk-vnc
|
Name: gtk-vnc
|
||||||
Version: 0.2.0
|
Version: 0.3.1
|
||||||
Release: 4%{?dist}
|
Release: 1%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||||
Patch1: %{name}-%{version}-execmem.patch
|
|
||||||
Patch2: %{name}-%{version}-coroutine-caller.patch
|
|
||||||
Patch3: %{name}-%{version}-coroutine-cleanup.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
URL: http://gtk-vnc.sf.net/
|
URL: http://gtk-vnc.sf.net/
|
||||||
BuildRequires: gtk2-devel pygtk2-devel python-devel gnutls-devel
|
BuildRequires: gtk2-devel pygtk2-devel python-devel gnutls-devel
|
||||||
@ -44,9 +41,6 @@ A module allowing use of the GTK-VNC widget from python
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -86,6 +80,9 @@ rm -fr %{buildroot}
|
|||||||
%{_libdir}/python*/site-packages/gtkvnc.so
|
%{_libdir}/python*/site-packages/gtkvnc.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 13 2007 Daniel P. Berrange <berrange@redhat.com> - 0.3.1-1.fc9
|
||||||
|
- Update to 0.3.1 release
|
||||||
|
|
||||||
* Thu Oct 10 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-4.fc8
|
* Thu Oct 10 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-4.fc8
|
||||||
- Fixed coroutine cleanup to avoid SEGV (rhbz #325731)
|
- Fixed coroutine cleanup to avoid SEGV (rhbz #325731)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user