--- a/cmake/Modules/GrSwig.cmake
+++ a/cmake/Modules/GrSwig.cmake
@@ -105,18 +105,6 @@ endfunction(GR_SWIG_MAKE_DOCS)
macro(GR_SWIG_MAKE name)
set(ifiles ${ARGN})
- # Shimming this in here to take care of a SWIG bug with handling
- # vector<size_t> and vector<unsigned int> (on 32-bit machines) and
- # vector<long unsigned int> (on 64-bit machines). Use this to test
- # the size of size_t, then set SIZE_T_32 if it's a 32-bit machine
- # or not if it's 64-bit. The logic in gr_type.i handles the rest.
- INCLUDE(CheckTypeSize)
- CHECK_TYPE_SIZE("size_t" SIZEOF_SIZE_T)
- CHECK_TYPE_SIZE("unsigned int" SIZEOF_UINT)
- if(${SIZEOF_SIZE_T} EQUAL ${SIZEOF_UINT})
- list(APPEND GR_SWIG_FLAGS -DSIZE_T_32)
- endif(${SIZEOF_SIZE_T} EQUAL ${SIZEOF_UINT})
-
#do swig doc generation if specified
if(GR_SWIG_DOC_FILE)
set(GR_SWIG_DOCS_SOURCE_DEPS ${GR_SWIG_SOURCE_DEPS})
--- a/docs/doxygen/other/thread_affinity.dox
+++ a/docs/doxygen/other/thread_affinity.dox
@@ -50,7 +50,7 @@ Each block has two new data members:
A block can set and unset its affinity at any time using the
following member functions:
-- gr::block::set_processor_affinity(const std::vector<int> &mask)
+- gr::block::set_processor_affinity(const std::vector<std::size_t> &mask)
- gr::block::unset_processor_affinity()
Where \p mask is a vector of core numbers to set the thread's affinity
@@ -76,7 +76,7 @@ to that affinity setting.
The gr::hier_block2 class supports the same API interface to the block
thread affinity:
-- gr::hier_block2::set_processor_affinity(const std::vector<int> &mask)
+- gr::hier_block2::set_processor_affinity(const std::vector<std::size_t> &mask)
- gr::hier_block2::unset_processor_affinity()
- gr::hier_block2::processor_affinity()
--- a/gnuradio-runtime/include/gnuradio/basic_block.h
+++ a/gnuradio-runtime/include/gnuradio/basic_block.h
@@ -375,13 +375,13 @@ namespace gr {
d_msg_handlers[which_port] = msg_handler_t(msg_handler);
}
- virtual void set_processor_affinity(const std::vector<int> &mask)
+ virtual void set_processor_affinity(const std::vector<std::size_t> &mask)
{ throw std::runtime_error("set_processor_affinity not overloaded in child class."); }
virtual void unset_processor_affinity()
{ throw std::runtime_error("unset_processor_affinity not overloaded in child class."); }
- virtual std::vector<int> processor_affinity()
+ virtual std::vector<std::size_t> processor_affinity()
{ throw std::runtime_error("processor_affinity not overloaded in child class."); }
};
--- a/gnuradio-runtime/include/gnuradio/block.h
+++ a/gnuradio-runtime/include/gnuradio/block.h
@@ -532,9 +532,9 @@ namespace gr {
/*!
* \brief Set the thread's affinity to processor core \p n.
*
- * \param mask a vector of ints of the core numbers available to this block.
+ * \param mask a vector of std::size_t of the core numbers available to this block.
*/
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
/*!
* \brief Remove processor affinity to a specific core.
@@ -544,7 +544,7 @@ namespace gr {
/*!
* \brief Get the current processor affinity.
*/
- std::vector<int> processor_affinity() { return d_affinity; }
+ std::vector<std::size_t> processor_affinity() { return d_affinity; }
/*!
* \brief Get the current thread priority in use
@@ -589,7 +589,7 @@ namespace gr {
int d_max_noutput_items; // value of max_noutput_items for this block
int d_min_noutput_items;
tag_propagation_policy_t d_tag_propagation_policy; // policy for moving tags downstream
- std::vector<int> d_affinity; // thread affinity proc. mask
+ std::vector<std::size_t> d_affinity; // thread affinity proc. mask
int d_priority; // thread priority level
bool d_pc_rpc_set;
bool d_update_rate; // should sched update rel rate?
--- a/gnuradio-runtime/include/gnuradio/block_detail.h
+++ a/gnuradio-runtime/include/gnuradio/block_detail.h
@@ -174,10 +174,10 @@ namespace gr {
* \brief Set core affinity of block to the cores in the vector
* mask.
*
- * \param mask a vector of ints of the core numbers available to
+ * \param mask a vector of std::size_t of the core numbers available to
* this block.
*/
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
/*!
* \brief Unset core affinity.
--- a/gnuradio-runtime/include/gnuradio/hier_block2.h
+++ a/gnuradio-runtime/include/gnuradio/hier_block2.h
@@ -216,7 +216,7 @@ namespace gr {
*
* \param mask a vector of ints of the core numbers available to this block.
*/
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
/*!
* \brief Remove processor affinity for all blocks in hier_block2.
@@ -232,7 +232,7 @@ namespace gr {
* interface. If any block has been individually set, then this
* call could be misleading.
*/
- std::vector<int> processor_affinity();
+ std::vector<std::size_t> processor_affinity();
};
/*!
--- a/gnuradio-runtime/include/gnuradio/thread/thread.h
+++ a/gnuradio-runtime/include/gnuradio/thread/thread.h
@@ -77,7 +77,7 @@ namespace gr {
* do support in this way since 10.5 is not what we want or can
* use in this fashion).
*/
- GR_RUNTIME_API void thread_bind_to_processor(const std::vector<int> &mask);
+ GR_RUNTIME_API void thread_bind_to_processor(const std::vector<std::size_t> &mask);
/*! \brief Convineince function to bind the current thread to a single core.
*
@@ -89,7 +89,7 @@ namespace gr {
* do support in this way since 10.5 is not what we want or can
* use in this fashion).
*/
- GR_RUNTIME_API void thread_bind_to_processor(int n);
+ GR_RUNTIME_API void thread_bind_to_processor(std::size_t n);
/*! \brief Bind a thread to a set of cores.
*
@@ -104,7 +104,7 @@ namespace gr {
* use in this fashion).
*/
GR_RUNTIME_API void thread_bind_to_processor(gr_thread_t thread,
- const std::vector<int> &mask);
+ const std::vector<std::size_t> &mask);
/*! \brief Convineince function to bind the a thread to a single core.
--- a/gnuradio-runtime/lib/block.cc
+++ a/gnuradio-runtime/lib/block.cc
@@ -325,7 +325,7 @@ namespace gr {
}
void
- block::set_processor_affinity(const std::vector<int> &mask)
+ block::set_processor_affinity(const std::vector<std::size_t> &mask)
{
d_affinity = mask;
if(d_detail) {
--- a/gnuradio-runtime/lib/block_detail.cc
+++ a/gnuradio-runtime/lib/block_detail.cc
@@ -220,7 +220,7 @@ namespace gr {
}
void
- block_detail::set_processor_affinity(const std::vector<int> &mask)
+ block_detail::set_processor_affinity(const std::vector<std::size_t> &mask)
{
if(threaded) {
try {
--- a/gnuradio-runtime/lib/hier_block2.cc
+++ a/gnuradio-runtime/lib/hier_block2.cc
@@ -159,7 +159,7 @@ namespace gr {
}
void
- hier_block2::set_processor_affinity(const std::vector<int> &mask)
+ hier_block2::set_processor_affinity(const std::vector<std::size_t> &mask)
{
d_detail->set_processor_affinity(mask);
}
@@ -170,7 +170,7 @@ namespace gr {
d_detail->unset_processor_affinity();
}
- std::vector<int>
+ std::vector<std::size_t>
hier_block2::processor_affinity()
{
return d_detail->processor_affinity();
--- a/gnuradio-runtime/lib/hier_block2_detail.cc
+++ a/gnuradio-runtime/lib/hier_block2_detail.cc
@@ -685,7 +685,7 @@ namespace gr {
}
void
- hier_block2_detail::set_processor_affinity(const std::vector<int> &mask)
+ hier_block2_detail::set_processor_affinity(const std::vector<std::size_t> &mask)
{
basic_block_vector_t tmp = d_fg->calc_used_blocks();
for(basic_block_viter_t p = tmp.begin(); p != tmp.end(); p++) {
@@ -702,7 +702,7 @@ namespace gr {
}
}
- std::vector<int>
+ std::vector<std::size_t>
hier_block2_detail::processor_affinity()
{
basic_block_vector_t tmp = d_fg->calc_used_blocks();
--- a/gnuradio-runtime/lib/hier_block2_detail.h
+++ a/gnuradio-runtime/lib/hier_block2_detail.h
@@ -54,9 +54,9 @@ namespace gr {
void unlock();
void flatten_aux(flat_flowgraph_sptr sfg) const;
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
void unset_processor_affinity();
- std::vector<int> processor_affinity();
+ std::vector<std::size_t> processor_affinity();
private:
// Private implementation data
--- a/gnuradio-runtime/lib/thread/thread.cc
+++ a/gnuradio-runtime/lib/thread/thread.cc
@@ -40,33 +40,33 @@ namespace gr {
}
void
- thread_bind_to_processor(int n)
+ thread_bind_to_processor(std::size_t n)
{
- std::vector<int> mask(1, n);
+ std::vector<std::size_t> mask(1, n);
thread_bind_to_processor(get_current_thread_id(), mask);
}
void
- thread_bind_to_processor(const std::vector<int> &mask)
+ thread_bind_to_processor(const std::vector<std::size_t> &mask)
{
thread_bind_to_processor(get_current_thread_id(), mask);
}
void
- thread_bind_to_processor(gr_thread_t thread, int n)
+ thread_bind_to_processor(gr_thread_t thread, std::size_t n)
{
- std::vector<int> mask(1, n);
+ std::vector<std::size_t> mask(1, n);
thread_bind_to_processor(thread, mask);
}
void
- thread_bind_to_processor(gr_thread_t thread, const std::vector<int> &mask)
+ thread_bind_to_processor(gr_thread_t thread, const std::vector<std::size_t> &mask)
{
//DWORD_PTR mask = (1 << n);
DWORD_PTR dword_mask = 0;
- std::vector<int> _mask = mask;
- std::vector<int>::iterator itr;
+ std::vector<std::size_t> _mask = mask;
+ std::vector<std::size_t>::iterator itr;
for(itr = _mask.begin(); itr != _mask.end(); itr++)
dword_mask |= (1 << (*itr));
@@ -171,25 +171,25 @@ namespace gr {
}
void
- thread_bind_to_processor(int n)
+ thread_bind_to_processor(std::size_t n)
{
// Not implemented on OSX
}
void
- thread_bind_to_processor(gr_thread_t thread, int n)
+ thread_bind_to_processor(gr_thread_t thread, std::size_t n)
{
// Not implemented on OSX
}
void
- thread_bind_to_processor(const std::vector<int> &mask)
+ thread_bind_to_processor(const std::vector<std::size_t> &mask)
{
// Not implemented on OSX
}
void
- thread_bind_to_processor(gr_thread_t thread, const std::vector<int> &mask)
+ thread_bind_to_processor(gr_thread_t thread, const std::vector<std::size_t> &mask)
{
// Not implemented on OSX
}
@@ -254,32 +254,32 @@ namespace gr {
}
void
- thread_bind_to_processor(int n)
+ thread_bind_to_processor(std::size_t n)
{
- std::vector<int> mask(1, n);
+ std::vector<std::size_t> mask(1, n);
thread_bind_to_processor(get_current_thread_id(), mask);
}
void
- thread_bind_to_processor(const std::vector<int> &mask)
+ thread_bind_to_processor(const std::vector<std::size_t> &mask)
{
thread_bind_to_processor(get_current_thread_id(), mask);
}
void
- thread_bind_to_processor(gr_thread_t thread, int n)
+ thread_bind_to_processor(gr_thread_t thread, std::size_t n)
{
- std::vector<int> mask(1, n);
+ std::vector<std::size_t> mask(1, n);
thread_bind_to_processor(thread, mask);
}
void
- thread_bind_to_processor(gr_thread_t thread, const std::vector<int> &mask)
+ thread_bind_to_processor(gr_thread_t thread, const std::vector<std::size_t> &mask)
{
cpu_set_t set;
size_t len = sizeof(cpu_set_t);
- std::vector<int> _mask = mask;
- std::vector<int>::iterator itr;
+ std::vector<std::size_t> _mask = mask;
+ std::vector<std::size_t>::iterator itr;
CPU_ZERO(&set);
for(itr = _mask.begin(); itr != _mask.end(); itr++)
--- a/gnuradio-runtime/swig/block.i
+++ a/gnuradio-runtime/swig/block.i
@@ -98,9 +98,9 @@ class gr::block : public gr::basic_block
float pc_work_time_total();
// Methods to manage processor affinity.
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
void unset_processor_affinity();
- std::vector<int> processor_affinity();
+ std::vector<std::size_t> processor_affinity();
// Methods to manage thread priority
int active_thread_priority();
--- a/gnuradio-runtime/swig/gr_types.i
+++ a/gnuradio-runtime/swig/gr_types.i
@@ -80,15 +80,4 @@ namespace std {
%template(gr_vector_vector_complexf) std::vector< std::vector< std::complex<float> > >;
%template(gr_vector_vector_complexd) std::vector< std::vector< std::complex<double> > >;
-// Fix for Issue #529
-#ifdef SIZE_T_32
- // On 32-bit systems, whenever we see std::vector<size_t>, replace it
- // with vector<unsigned int>
- %apply std::vector<unsigned int> { std::vector<size_t> };
-#else
- // On 64-bit systems, whenever we see std::vector<size_t>, replace it
- // with vector<long unsigned int>
- %apply std::vector<long unsigned int> { std::vector<size_t> };
-#endif
-
#endif /* SWIG_GR_TYPES_I */
--- a/gnuradio-runtime/swig/hier_block2.i
+++ a/gnuradio-runtime/swig/hier_block2.i
@@ -87,9 +87,9 @@ namespace gr {
void message_port_register_hier_in(pmt::pmt_t port_id);
void message_port_register_hier_out(pmt::pmt_t port_id);
- void set_processor_affinity(const std::vector<int> &mask);
+ void set_processor_affinity(const std::vector<std::size_t> &mask);
void unset_processor_affinity();
- std::vector<int> processor_affinity();
+ std::vector<std::size_t> processor_affinity();
gr::hier_block2_sptr to_hier_block2(); // Needed for Python type coercion
};
--- a/gr-blocks/lib/qa_gr_top_block.cc
+++ a/gr-blocks/lib/qa_gr_top_block.cc
@@ -278,7 +278,7 @@ void qa_top_block::t11_set_block_affinity()
gr::block_sptr src (gr::blocks::null_source::make(sizeof(float)));
gr::block_sptr snk (gr::blocks::null_sink::make(sizeof(float)));
- std::vector<int> set(1, 0), ret;
+ std::vector<std::size_t> set(1, 0), ret;
src->set_processor_affinity(set);
tb->connect(src, 0, snk, 0);