erts: Fix race between port_set_data, port_get_data and port termination
erts: Fix race between port_set_data, port_get_data and port termination

Always update prt->data with atomic xchg-op.
Check for NULL data to detect racing port terminator.
Use NULL, as THE_NON_VALUE can be a valid pointer on debug VM.

VincentHHL/otp,lhslll/otp,kvakvs/otp,msantos/otp,klarna/otp,RoadRunnr/otp,sitexa/otp,entropiae/otp,isvilen/otp,basho/otp,ader1990/otp,massemanet/otp,cnbin/otp,jemsbhai/otp,jj1bdx/otp,krishnakumar4a4/otp,sitexa/otp,goertzenator/otp,weisslj/otp,awetzel/otp,entropiae/otp,bjorng/otp,VincentHHL/otp,marquisthunder/otp,erlang/otp,ahmedshafeeq/otp,psyeugenic/otp,getong/otp,klarna/otp,lucafavatella/otp,emacsmirror/erlang,vic/otp,massemanet/otp,basho/otp,electricimp/otp,vladdu/otp,krishnakumar4a4/otp,vic/otp,isvilen/otp,erlang/otp,stolen/otp,getong/otp,mikpe/otp,bsmr-erlang/otp,paladim/otp,dumbbell/otp,msantos/otp,vinoski/otp,enikki/otp,platinumthinker/otp,rlipscombe/otp,platinumthinker/otp,potatosalad/otp,potatosalad/otp,lianghaivv/otp,gjaldon/otp,legoscia/otp,paulcager/otp,marquisthunder/otp,bernardd/otp,release-project/otp,msantos/otp,falkevik/otp,NOMORECOFFEE/otp,matwey/otp,weisslj/otp,vinoski/otp,g-andrade/otp,emile/otp,riverrun/otp,bjorng/otp,tuncer/otp,dumbbell/otp,lrascao/otp,yangchengjian/otp,awetzel/otp,Teino1978-Corp/erlang-otp,ferd/otp,potatosalad/otp,jinshana/otp,g-andrade/otp,dgud/otp,c-rack/otp,bsmr-erlang/otp,g-andrade/otp,saleyn/otp,mujiatong/otp,mujiatong/otp,uabboli/otp,bjorng/otp,bernardd/otp,palas/otp,RJ/otp,bugs-erlang-org/otp,lhslll/otp,legoscia/otp,platinumthinker/otp,derek121/otp,lightcyphers/otp,bsmr-erlang/otp,electricimp/otp,jinshana/otp,vinoski/otp,entropiae/otp,potatosalad/otp,palas/otp,basho/otp,klarna/otp,GinjaNinja32/otp,matwey/otp,vladdu/otp,vladdu/otp,RichMorin/otp,RoadRunnr/otp,g-andrade/otp,theom/otp,bernardd/otp,neeraj9/otp,ferd/otp,rlipscombe/otp,GinjaNinja32/otp,kvakvs/otp,sammoth-wazoku/otp,jj1bdx/otp,lightcyphers/otp,rlipscombe/otp,g-andrade/otp,johanclaesson/otp,bsmr-erlang/otp,hairyhum/otp,kvakvs/otp,emacsmirror/erlang,klarna/otp,jemsbhai/otp,jj1bdx/otp,paladim/otp,emacsmirror/erlang,gjaldon/otp,lemenkov/otp,benoitc/otp-1,isvilen/otp,RJ/otp,tuncer/otp,isvilen/otp,mikpe/otp,Teino1978-Corp/erlang-otp,stolen/otp,jj1bdx/otp,awetzel/otp,c-rack/otp,emile/otp,lrascao/otp,klarna/otp,sdebnath/otp,ferd/otp,mujiatong/otp,yangchengjian/otp,jamesruan/otp,RoadRunnr/otp,emile/otp,RichMorin/otp,enikki/otp,matwey/otp,ferd/otp,goertzenator/otp,lucafavatella/otp,getong/otp,rlipscombe/otp,falkevik/otp,Teino1978-Corp/otp,emile/otp,electricimp/otp,NOMORECOFFEE/otp,bernardd/otp,hairyhum/otp,ahmedshafeeq/otp,Teino1978-Corp/otp,ahmedshafeeq/otp,cnbin/otp,sdebnath/otp,ferd/otp,lemenkov/otp,haguenau/otp,beni55/otp,cnbin/otp,ferd/otp,theom/otp,NOMORECOFFEE/otp,emile/otp,release-project/otp,erlang/otp,yangchengjian/otp,haguenau/otp,mujiatong/otp,jinshana/otp,theom/otp,cnbin/otp,msantos/otp,saleyn/otp,mikpe/otp,potatosalad/otp,sitexa/otp,uabboli/otp,getong/otp,riverrun/otp,tuncer/otp,paulcager/otp,RichMorin/otp,potatosalad/otp,lantti/otp,lantti/otp,mikpe/otp,RichMorin/otp,gjaldon/otp,RoadRunnr/otp,GinjaNinja32/otp,lhslll/otp,Teino1978-Corp/otp,basho/otp,bjorng/otp,goertzenator/otp,bsmr-erlang/otp,jemsbhai/otp,aboroska/otp,falkevik/otp,vic/otp,rlipscombe/otp,lianghaivv/otp,legoscia/otp,getong/otp,lantti/otp,yangchengjian/otp,jemsbhai/otp,awetzel/otp,paladim/otp,paladim/otp,uabboli/otp,GinjaNinja32/otp,sdebnath/otp,cnbin/otp,mujiatong/otp,dumbbell/otp,release-project/otp,isvilen/otp,krishnakumar4a4/otp,derek121/otp,emacsmirror/erlang,VincentHHL/otp,falkevik/otp,rlipscombe/otp,legoscia/otp,kvakvs/otp,schlagert/otp,goertzenator/otp,RichMorin/otp,g-andrade/otp,jj1bdx/otp,release-project/otp,haguenau/otp,sdebnath/otp,lightcyphers/otp,ader1990/otp,vladdu/otp,Teino1978-Corp/erlang-otp,bernardd/otp,dgud/otp,fenollp/otp,jamesruan/otp,matwey/otp,schlagert/otp,johanclaesson/otp,legoscia/otp,saleyn/otp,erlang/otp,lemenkov/otp,RJ/otp,massemanet/otp,ahmedshafeeq/otp,saleyn/otp,cobusc/otp,getong/otp,massemanet/otp,lrascao/otp,lemenkov/otp,tuncer/otp,benoitc/otp-1,theom/otp,ader1990/otp,neeraj9/otp,sdebnath/otp,klarna/otp,beni55/otp,GinjaNinja32/otp,saleyn/otp,lemenkov/otp,fenollp/otp,lianghaivv/otp,basho/otp,tuncer/otp,RaimoNiskanen/otp,hairyhum/otp,vic/otp,lemenkov/otp,weisslj/otp,goertzenator/otp,fenollp/otp,gjaldon/otp,beni55/otp,release-project/otp,stolen/otp,psyeugenic/otp,msantos/otp,ahmedshafeeq/otp,aboroska/otp,emile/otp,lightcyphers/otp,uabboli/otp,RJ/otp,bernardd/otp,palas/otp,saleyn/otp,goertzenator/otp,psyeugenic/otp,stolen/otp,dgud/otp,ader1990/otp,Teino1978-Corp/otp,NOMORECOFFEE/otp,c-rack/otp,Teino1978-Corp/otp,awetzel/otp,lantti/otp,mikpe/otp,falkevik/otp,mujiatong/otp,fenollp/otp,sitexa/otp,Teino1978-Corp/erlang-otp,Teino1978-Corp/erlang-otp,sammoth-wazoku/otp,beni55/otp,yangchengjian/otp,vladdu/otp,lantti/otp,isvilen/otp,platinumthinker/otp,lhslll/otp,basho/otp,jinshana/otp,falkevik/otp,sammoth-wazoku/otp,VincentHHL/otp,lucafavatella/otp,lantti/otp,bernardd/otp,lemenkov/otp,lianghaivv/otp,cobusc/otp,bugs-erlang-org/otp,krishnakumar4a4/otp,jamesruan/otp,haguenau/otp,enikki/otp,dgud/otp,erlang/otp,sdebnath/otp,emacsmirror/erlang,lightcyphers/otp,dumbbell/otp,goertzenator/otp,RaimoNiskanen/otp,release-project/otp,marquisthunder/otp,lantti/otp,cobusc/otp,marquisthunder/otp,lrascao/otp,riverrun/otp,ahmedshafeeq/otp,RJ/otp,c-rack/otp,derek121/otp,neeraj9/otp,sdebnath/otp,jamesruan/otp,massemanet/otp,isvilen/otp,lhslll/otp,weisslj/otp,getong/otp,erlang/otp,sammoth-wazoku/otp,paulcager/otp,Teino1978-Corp/otp,goertzenator/otp,g-andrade/otp,psyeugenic/otp,basho/otp,ferd/otp,benoitc/otp-1,aboroska/otp,ferd/otp,potatosalad/otp,lucafavatella/otp,GinjaNinja32/otp,jamesruan/otp,kvakvs/otp,matwey/otp,bugs-erlang-org/otp,mikpe/otp,lightcyphers/otp,palas/otp,RJ/otp,riverrun/otp,marquisthunder/otp,emacsmirror/erlang,potatosalad/otp,jemsbhai/otp,vinoski/otp,RaimoNiskanen/otp,falkevik/otp,GinjaNinja32/otp,vic/otp,tuncer/otp,riverrun/otp,lianghaivv/otp,paladim/otp,riverrun/otp,electricimp/otp,enikki/otp,ader1990/otp,c-rack/otp,hairyhum/otp,krishnakumar4a4/otp,enikki/otp,aboroska/otp,theom/otp,fenollp/otp,lantti/otp,mikpe/otp,johanclaesson/otp,yangchengjian/otp,bugs-erlang-org/otp,sammoth-wazoku/otp,RoadRunnr/otp,electricimp/otp,lrascao/otp,vladdu/otp,matwey/otp,dumbbell/otp,erlang/otp,platinumthinker/otp,derek121/otp,msantos/otp,emile/otp,beni55/otp,weisslj/otp,falkevik/otp,beni55/otp,uabboli/otp,neeraj9/otp,riverrun/otp,lucafavatella/otp,RoadRunnr/otp,vinoski/otp,RaimoNiskanen/otp,benoitc/otp-1,RGafiyatullin/otp,hairyhum/otp,msantos/otp,awetzel/otp,ferd/otp,aboroska/otp,johanclaesson/otp,RaimoNiskanen/otp,beni55/otp,psyeugenic/otp,paulcager/otp,lianghaivv/otp,sitexa/otp,electricimp/otp,RGafiyatullin/otp,legoscia/otp,kvakvs/otp,jj1bdx/otp,paladim/otp,stolen/otp,jemsbhai/otp,RaimoNiskanen/otp,legoscia/otp,rlipscombe/otp,dumbbell/otp,potatosalad/otp,benoitc/otp-1,lhslll/otp,stolen/otp,aboroska/otp,cobusc/otp,schlagert/otp,palas/otp,GinjaNinja32/otp,RaimoNiskanen/otp,derek121/otp,neeraj9/otp,rlipscombe/otp,stolen/otp,kvakvs/otp,jj1bdx/otp,emacsmirror/erlang,fenollp/otp,massemanet/otp,getong/otp,palas/otp,isvilen/otp,mikpe/otp,saleyn/otp,sitexa/otp,platinumthinker/otp,goertzenator/otp,RoadRunnr/otp,falkevik/otp,VincentHHL/otp,saleyn/otp,getong/otp,electricimp/otp,Teino1978-Corp/erlang-otp,gjaldon/otp,bernardd/otp,RoadRunnr/otp,dgud/otp,bjorng/otp,enikki/otp,cobusc/otp,jinshana/otp,krishnakumar4a4/otp,RGafiyatullin/otp,cobusc/otp,basho/otp,enikki/otp,massemanet/otp,bugs-erlang-org/otp,ahmedshafeeq/otp,lrascao/otp,paulcager/otp,Teino1978-Corp/erlang-otp,jj1bdx/otp,gjaldon/otp,awetzel/otp,release-project/otp,stolen/otp,tuncer/otp,yangchengjian/otp,psyeugenic/otp,rlipscombe/otp,vinoski/otp,benoitc/otp-1,rlipscombe/otp,RichMorin/otp,fenollp/otp,bsmr-erlang/otp,fenollp/otp,johanclaesson/otp,schlagert/otp,weisslj/otp,dgud/otp,getong/otp,vinoski/otp,bugs-erlang-org/otp,gjaldon/otp,theom/otp,massemanet/otp,Teino1978-Corp/otp,krishnakumar4a4/otp,electricimp/otp,jemsbhai/otp,beni55/otp,johanclaesson/otp,bernardd/otp,paladim/otp,weisslj/otp,saleyn/otp,vladdu/otp,emile/otp,uabboli/otp,hairyhum/otp,haguenau/otp,johanclaesson/otp,entropiae/otp,RoadRunnr/otp,bjorng/otp,palas/otp,psyeugenic/otp,vladdu/otp,schlagert/otp,RGafiyatullin/otp,kvakvs/otp,weisslj/otp,derek121/otp,vinoski/otp,ahmedshafeeq/otp,bsmr-erlang/otp,vic/otp,legoscia/otp,psyeugenic/otp,lhslll/otp,cobusc/otp,mujiatong/otp,dgud/otp,paulcager/otp,hairyhum/otp,Teino1978-Corp/otp,uabboli/otp,NOMORECOFFEE/otp,dumbbell/otp,kvakvs/otp,isvilen/otp,jj1bdx/otp,lucafavatella/otp,g-andrade/otp,cnbin/otp,RaimoNiskanen/otp,matwey/otp,paladim/otp,emacsmirror/erlang,entropiae/otp,RichMorin/otp,marquisthunder/otp,haguenau/otp,aboroska/otp,dgud/otp,schlagert/otp,jj1bdx/otp,lianghaivv/otp,lightcyphers/otp,g-andrade/otp,benoitc/otp-1,lianghaivv/otp,entropiae/otp,riverrun/otp,lucafavatella/otp,uabboli/otp,jamesruan/otp,basho/otp,emacsmirror/erlang,matwey/otp,schlagert/otp,palas/otp,sammoth-wazoku/otp,lrascao/otp,VincentHHL/otp,ader1990/otp,lightcyphers/otp,c-rack/otp,theom/otp,aboroska/otp,bsmr-erlang/otp,ader1990/otp,vic/otp,entropiae/otp,mikpe/otp,vinoski/otp,RGafiyatullin/otp,lucafavatella/otp,weisslj/otp,bjorng/otp,erlang/otp,marquisthunder/otp,marquisthunder/otp,cobusc/otp,RJ/otp,RaimoNiskanen/otp,RJ/otp,paulcager/otp,haguenau/otp,lrascao/otp,jamesruan/otp,legoscia/otp,dumbbell/otp,release-project/otp,bugs-erlang-org/otp,aboroska/otp,isvilen/otp,NOMORECOFFEE/otp,bjorng/otp,VincentHHL/otp,cnbin/otp,haguenau/otp,VincentHHL/otp,mikpe/otp,sammoth-wazoku/otp,RichMorin/otp,jinshana/otp,klarna/otp,dumbbell/otp,matwey/otp,neeraj9/otp,cnbin/otp,benoitc/otp-1,jemsbhai/otp,neeraj9/otp,sitexa/otp,NOMORECOFFEE/otp,RGafiyatullin/otp,tuncer/otp,sammoth-wazoku/otp,derek121/otp,platinumthinker/otp,emacsmirror/erlang,sdebnath/otp,c-rack/otp,Teino1978-Corp/erlang-otp,mujiatong/otp,bjorng/otp,msantos/otp,yangchengjian/otp,erlang/otp,ader1990/otp,paulcager/otp,theom/otp,emile/otp,krishnakumar4a4/otp,vinoski/otp,lhslll/otp,NOMORECOFFEE/otp,release-project/otp,dgud/otp,klarna/otp,enikki/otp,jinshana/otp,dumbbell/otp,schlagert/otp,tuncer/otp,bsmr-erlang/otp,lemenkov/otp,uabboli/otp,massemanet/otp,jinshana/otp,ahmedshafeeq/otp,RGafiyatullin/otp,RGafiyatullin/otp,gjaldon/otp,lrascao/otp,awetzel/otp,sitexa/otp,erlang/otp,hairyhum/otp,vic/otp,fenollp/otp,platinumthinker/otp,g-andrade/otp,bjorng/otp,bugs-erlang-org/otp,vladdu/otp,potatosalad/otp,johanclaesson/otp,jamesruan/otp,neeraj9/otp,entropiae/otp,dgud/otp,electricimp/otp,derek121/otp,c-rack/otp