#include "python_featureset.hpp" #include "python_utils.hpp" // boost #include python_featureset::python_featureset(boost::python::object iterator) { ensure_gil lock; begin_ = boost::python::stl_input_iterator(iterator); } python_featureset::~python_featureset() { ensure_gil lock; begin_ = end_; } mapnik::feature_ptr python_featureset::next() { // checking to see if we've reached the end does not require the GIL. if(begin_ == end_) return mapnik::feature_ptr(); // getting the next feature might call into the interpreter and so the GIL must be held. ensure_gil lock; return *(begin_++); }