From: <mu...@le...> - 2007-12-12 20:44:07
|
Amitha, I think the idea of moving to threads is great! Most of our code has trivial parallelism, and it is shameful for VXL not to take advantage of the existing multi-core processing evolution. I can=92t comment on which thread mechanism will be the most effective, but a good initial result would be to have thread support for STL and vnl, maybe vil that can be used by average programmers. I found this article compelling in that regard, http://pact07.cs.tamu.edu/Stroustrup_PACT2007.pdf I do wonder about adopting boost smart pointers vs. the existing vxl smart pointer. Is there a big advantage to Boost=92s smart pointer? I took a very cursory look at the design didn=92t seem to be all that different. The main thing seemed to be support for various levels of memory sharing. Joe |
From: Brad K. <bra...@ki...> - 2007-12-12 22:58:11
|
mu...@le... wrote: > I do wonder about adopting boost smart pointers vs. the existing vxl > smart pointer. Is there a big advantage to Boost’s smart pointer? I > took a very cursory look at the design didn’t seem to be all that > different. The main thing seemed to be support for various levels of > memory sharing. The primary difference is that the boost shared_ptr is not intrusive. It does not require the pointed-to type to derive from any object or have any special member. All the bookkeeping is kept in a separate object allocated at initialization from a new raw pointer. This has several great advantages, but one drawback is that it is not possible to construct a new smart pointer to an existing object given only a raw pointer. Everyone that shares ownership must have an explicit shared_ptr to it. It is not safe to use a raw pointer to such an object unless it is known that some other place has a smart pointer still referencing it. -Brad |
From: Amitha P. <ami...@us...> - 2007-12-12 23:16:15
|
mu...@le... wrote: > I do wonder about adopting boost smart pointers vs. the existing vxl > smart pointer. Is there a big advantage to Boost’s smart pointer? There isn't too much that Boost's smart pointer that's different from the one in vbl. In fact, I'm sure that the implementation of vbl_shared_ptr was very closely modeled after the Boost one. Boost does provide weak pointers, which are useful in a few cases. The boost implementation is better at handling some corner cases and exotic uses, nearly all of which won't affect daily use. Amitha. |