From bada6666c70977a058755ccf232e7d67b24adeed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 23 Jul 2014 15:21:29 +0200 Subject: New upstream release --- libcult/examples/mm/transfer/transfer.cxx | 117 ------------------------------ 1 file changed, 117 deletions(-) delete mode 100644 libcult/examples/mm/transfer/transfer.cxx (limited to 'libcult/examples/mm/transfer/transfer.cxx') diff --git a/libcult/examples/mm/transfer/transfer.cxx b/libcult/examples/mm/transfer/transfer.cxx deleted file mode 100644 index 81014d0..0000000 --- a/libcult/examples/mm/transfer/transfer.cxx +++ /dev/null @@ -1,117 +0,0 @@ -// file : examples/mm/transfer/transfer.cxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include - -#include - -using std::cerr; -using std::endl; - -using namespace Cult; - -unsigned long count = 0; -unsigned long clone_count = 0; - -struct Type -{ - Type () - { - ++count; - } - - ~Type () - { - --count; - } - - Evptr - clone () const - { - ++clone_count; - return Evptr (new Type); - } - - Void - f () const - { - Int i = i_; - ++i; - } - - Int i_; -}; - - -Evptr -source () -{ - return Evptr (new Type); -} - -Void -sink (Evptr a, Boolean r = true) -{ - if (r) - { - sink (a, false); - } - else - { - Evptr b (a); - - cerr << "\tshare count: " << b.count () << endl; - - // Any of these will trigger cloning. - // - b->f (); - } -} - -Int -main () -{ - // case 1 - // - { - cerr << "sink (new type)" << endl; - - clone_count = 0; - sink (new Type); - - cerr << "\tclone count: " << clone_count << endl - << endl; - } - - // case 2 - // - { - cerr << "sink (source ())" << endl; - - clone_count = 0; - sink (source ()); - - cerr << "\tclone count: " << clone_count << endl - << endl; - } - - - // case 3 - // - { - cerr << "sink (p)" << endl; - - clone_count = 0; - - Evptr p (new Type); - sink (p); - - cerr << "\tclone count: " << clone_count << endl - << endl; - } - - - cerr << "balance: " << count << endl; -} -- cgit v1.2.3