You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by nwellnhof <gi...@git.apache.org> on 2016/03/10 22:06:53 UTC

[lucy-dev] [GitHub] lucy-clownfish pull request: Make bootstrap process thread-safe

GitHub user nwellnhof opened a pull request:

    https://github.com/apache/lucy-clownfish/pull/63

    Make bootstrap process thread-safe

    Fixes CLOWNFISH-78.
    
    I chose a different approach than envisioned initially.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nwellnhof/lucy-clownfish threadsafe-bootstrap

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucy-clownfish/pull/63.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #63
    
----
commit dc56c144cace1d9faa70e857ae98596cfee2329d
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T14:11:36Z

    Implement dtors for Class and Method
    
    Only for internal use. Destructors of immortal types won't be invoked
    via DECREF, so they must be called directly.

commit ce1fe99cf3f45045af77bf717da3b17cb6549ffd
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T17:34:33Z

    Start to make Class_bootstrap thread-safe
    
    Use Atomic_cas_ptr to write
    
    - global class pointer
    - class name
    - class method array

commit d7c863b92dae97fd8a7eea93364941607e4921e1
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T18:06:53Z

    Make bootstrap_parcel thread-safe
    
    Remove bootstrap_inheritance.
    
    Add bootstrap_internal which invokes Class_bootstrap and parcel_init only
    for a single parcel.
    
    Detect inheritance cycles in Class_bootstrap.

commit 7528af4514e1ddea3c99bf9f6dcc4392c1f1b8e2
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T18:33:51Z

    Make cfish_init_parcel thread-safe
    
    Initialize globals with compare-and-swap.

commit 7cc75eb8dd53bb63966170629ec66cdbc62e7d34
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T19:05:20Z

    Test idempotence of bootstrap process

commit 70f2562db5dbd3614b8a6b36f2a1562cdf7f9e05
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T19:48:58Z

    Keep CLASS->obj_alloc_size at 0
    
    This makes sure that Init_Obj doesn't reset any values when bootstrapping.

commit 8b71db60c361fde4135e7b16b4e018a48bae1d2f
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T20:15:12Z

    Introduce struct cfish_ParcelSpec
    
    Change Class_bootstrap to take a single pointer to struct
    cfish_ParcelSpec.

commit 25f58a6a5267ba8b33bbe00f8a25fa58c490e585
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T20:19:21Z

    Replace parcel_id with ParcelSpec pointer
    
    This makes the check whether a class is in the same parcel thread-safe.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[lucy-dev] [GitHub] lucy-clownfish pull request: Make bootstrap process thread-safe

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/lucy-clownfish/pull/63


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[lucy-dev] [GitHub] lucy-clownfish pull request: Make bootstrap process thread-safe

Posted by nwellnhof <gi...@git.apache.org>.
GitHub user nwellnhof reopened a pull request:

    https://github.com/apache/lucy-clownfish/pull/63

    Make bootstrap process thread-safe

    Fixes CLOWNFISH-78.
    
    I chose a different approach than envisioned initially.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nwellnhof/lucy-clownfish threadsafe-bootstrap

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucy-clownfish/pull/63.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #63
    
----
commit dc56c144cace1d9faa70e857ae98596cfee2329d
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T14:11:36Z

    Implement dtors for Class and Method
    
    Only for internal use. Destructors of immortal types won't be invoked
    via DECREF, so they must be called directly.

commit ce1fe99cf3f45045af77bf717da3b17cb6549ffd
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T17:34:33Z

    Start to make Class_bootstrap thread-safe
    
    Use Atomic_cas_ptr to write
    
    - global class pointer
    - class name
    - class method array

commit d7c863b92dae97fd8a7eea93364941607e4921e1
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T18:06:53Z

    Make bootstrap_parcel thread-safe
    
    Remove bootstrap_inheritance.
    
    Add bootstrap_internal which invokes Class_bootstrap and parcel_init only
    for a single parcel.
    
    Detect inheritance cycles in Class_bootstrap.

commit 7528af4514e1ddea3c99bf9f6dcc4392c1f1b8e2
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T18:33:51Z

    Make cfish_init_parcel thread-safe
    
    Initialize globals with compare-and-swap.

commit 7cc75eb8dd53bb63966170629ec66cdbc62e7d34
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T19:05:20Z

    Test idempotence of bootstrap process

commit 70f2562db5dbd3614b8a6b36f2a1562cdf7f9e05
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T19:48:58Z

    Keep CLASS->obj_alloc_size at 0
    
    This makes sure that Init_Obj doesn't reset any values when bootstrapping.

commit 8b71db60c361fde4135e7b16b4e018a48bae1d2f
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T20:15:12Z

    Introduce struct cfish_ParcelSpec
    
    Change Class_bootstrap to take a single pointer to struct
    cfish_ParcelSpec.

commit 25f58a6a5267ba8b33bbe00f8a25fa58c490e585
Author: Nick Wellnhofer <we...@aevum.de>
Date:   2016-03-10T20:19:21Z

    Replace parcel_id with ParcelSpec pointer
    
    This makes the check whether a class is in the same parcel thread-safe.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[lucy-dev] [GitHub] lucy-clownfish pull request: Make bootstrap process thread-safe

Posted by nwellnhof <gi...@git.apache.org>.
Github user nwellnhof closed the pull request at:

    https://github.com/apache/lucy-clownfish/pull/63


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---