1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
%global _empty_manifest_terminate_build 0
Name: python-fastrlock
Version: 0.8.1
Release: 1
Summary: Fast, re-entrant optimistic lock implemented in Cython
License: MIT style
URL: https://github.com/scoder/fastrlock
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/84/64/7d4f96734aba053194877f0b342a3a57402d2b2215aaae39b0cd619a326d/fastrlock-0.8.1.tar.gz
%description
This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython.
It is a drop-in replacement for
`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_.
FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API
for direct use from Cython code via ``from fastrlock cimport rlock``.
Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7
because it avoids all locking unless two or more threads try to acquire it at the
same time. Under congestion, it is still about 10% faster than RLock due to being
implemented in Cython.
This is mostly equivalent to the revised RLock implementation in Python 3.2,
but still faster due to being implemented in Cython. However, in Python 3.4 and
later, the ``threading.RLock`` implementation in the stdlib tends to be as fast
or even faster than the lock provided by this package, when called through the
Python API. ``FastRLock`` is still faster also on these systems when called
through its Cython API from other Cython modules.
It was initially published as a code recipe here:
https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/
FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years.
%package -n python3-fastrlock
Summary: Fast, re-entrant optimistic lock implemented in Cython
Provides: python-fastrlock
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
BuildRequires: python3-cffi
BuildRequires: gcc
BuildRequires: gdb
%description -n python3-fastrlock
This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython.
It is a drop-in replacement for
`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_.
FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API
for direct use from Cython code via ``from fastrlock cimport rlock``.
Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7
because it avoids all locking unless two or more threads try to acquire it at the
same time. Under congestion, it is still about 10% faster than RLock due to being
implemented in Cython.
This is mostly equivalent to the revised RLock implementation in Python 3.2,
but still faster due to being implemented in Cython. However, in Python 3.4 and
later, the ``threading.RLock`` implementation in the stdlib tends to be as fast
or even faster than the lock provided by this package, when called through the
Python API. ``FastRLock`` is still faster also on these systems when called
through its Cython API from other Cython modules.
It was initially published as a code recipe here:
https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/
FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years.
%package help
Summary: Development documents and examples for fastrlock
Provides: python3-fastrlock-doc
%description help
This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython.
It is a drop-in replacement for
`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_.
FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API
for direct use from Cython code via ``from fastrlock cimport rlock``.
Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7
because it avoids all locking unless two or more threads try to acquire it at the
same time. Under congestion, it is still about 10% faster than RLock due to being
implemented in Cython.
This is mostly equivalent to the revised RLock implementation in Python 3.2,
but still faster due to being implemented in Cython. However, in Python 3.4 and
later, the ``threading.RLock`` implementation in the stdlib tends to be as fast
or even faster than the lock provided by this package, when called through the
Python API. ``FastRLock`` is still faster also on these systems when called
through its Cython API from other Cython modules.
It was initially published as a code recipe here:
https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/
FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years.
%prep
%autosetup -n fastrlock-0.8.1
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-fastrlock -f filelist.lst
%dir %{python3_sitearch}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Sun Apr 23 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.1-1
- Package Spec generated
|